How to get some columns of entity in entity-framework?

Mer*_*rta 3 c# sql linq entity-framework-6

假设我有一个包含超过 1000000 列的表。当我使用LINQ To SQL and Entity-Framework all queries will write in c# like below:

EFContext.MyTableName.Where(row=>row.column1==someValue)
                     .Select(...)
                     .FirstOrDefault(...)
                     .Any(...)
                     ...
Run Code Online (Sandbox Code Playgroud)

How to get only and only some columns of entity? Are there any way to get only columns 1 & 2 & 3 among 1000000 columns for example?

Attention:

选择后应保留结果数据的类型,例如,如果不过滤某些列,结果类型为 Type1,则非常重要的是,过滤后,结果类型为 Type1,但过滤后的 Type1 属性的值应为 null 或默认值。

mid*_*pat 5

要仅获取几行,您可以使用:

.Take(3);
Run Code Online (Sandbox Code Playgroud)

要仅获取某些列,您可以使用:

.Select(x => new MyType() { Column1 = x.Column1, Column2 = x.Column2 })
Run Code Online (Sandbox Code Playgroud)

请注意,该对象现在未附加到对象上下文,因此它不会受到 SaveChanges() 的影响。但您只选择了几列,并且类型仍然是正确的。

要获取您自己的默认值而不是变量类型的框架默认值,您可以修改构造函数类型以设置默认值。