过滤掉某些列时如何获取实体

时间:2011-02-04 11:34:00

标签: .net visual-studio-2008 entity-framework .net-3.5

我有一个巨大的列表。如何在不填充映射到这些列的属性的情况下选择实体?

我有一个想法,但我不确定这是否是正确的方法:

ctx.Items.Where(....).Select(a=> new Item { ... bind only needed columns }).ToList()

这些实体是否会附加到DataContext?

2 个答案:

答案 0 :(得分:2)

使用Item以外的任何类型。例如,匿名类型或DTO。然后您的查询将完全按照您的要求执行。

答案 1 :(得分:2)

我想你正确的方式。这是实例化仅填充了优先列/属性的对象的方法。看看this post

编辑:

这是来自Julie Lerman,我相信这个问题的内容是:

  

LINQ查询方法的预测   项目使用LINQ的方法   查询语法,您将使用选择   方法然后识别   您想要在其参数中的属性。   基于方法的查询语法需要   创建匿名的语法   键入lambda(参见例4-4)。

     

例4-4。使用LINQ进行投影   基于方法的语法

     

context.Contacts .Where(c =>   c.FirstName ==“Robert”)。选择(c =>   新的{c.Title,c.LastName,   c.FirstName})