我有一个巨大的列表。如何在不填充映射到这些列的属性的情况下选择实体?
我有一个想法,但我不确定这是否是正确的方法:
ctx.Items.Where(....).Select(a=> new Item { ... bind only needed columns }).ToList()
这些实体是否会附加到DataContext?
答案 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})