仅返回某些列 [英] Return only certain columns

查看:50
本文介绍了仅返回某些列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

自从我被告知我需要提出一个新问题:

Since I was told I need to make a new question:

我对此问题有此查询(排名搜索结果使用LINQ/.NET MVC ):

I have this query from this question (Ranking Search Results With LINQ/.NET MVC):

var results = db.People
.Join(db.Menu, p => p.ID, m => m.PersonID, (p, m) => new { p = p, m = m })
.Join(db.Domain, m => m.m.DomainID, d => d.ID, (m, d) => new { m = m, d = d })
.Select(d => new
        {
            rank = searchTermArray.Any(x => d.m.p.p.Name.Contains(x)) ? 3 : searchTermArray.Any(x => d.m.p.p.Biography.Contains(x)) ? 2 : searchTermArray.Any(x => d.d.domain.Contains(x)) ? 1 : 0,
            m = d
        })
.Where(a => a.rank > 0)
.OrderByDescending(a => a.rank)
.Select(a => a.m).Distinct();

我需要返回db.People的排名和仅某些列.我该怎么办?

I need to return the rank and only certain columns from db.People. How do I do that?

推荐答案

就像在查询中一样,新的{...}如:

As you do in your query, new {...} like :

    var results = db.People
   .Join(db.Menu, p => p.ID, m => m.PersonID, (p, m) => new { p = p, m = m })
   .Join(db.Domain, m => m.m.DomainID, d => d.ID, (m, d) => new { m = m, d = d })
   .Select(d => new
    {
        rank = searchTermArray.Any(x => d.m.p.p.Name.Contains(x)) ? 3 :    searchTermArray.Any(x => d.m.p.p.Biography.Contains(x)) ? 2 : searchTermArray.Any  (x => d.d.domain.Contains(x)) ? 1 : 0,
        m = d
    })
  .Where(a => a.rank > 0)
  .OrderByDescending(a => a.rank)
  .Select(a =>  new {
  column1 = a.column1, 
  column2 = a.column2
  ....
  }).Distinct();

这篇关于仅返回某些列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆