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 或默认值。
要仅获取几行,您可以使用:
.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() 的影响。但您只选择了几列,并且类型仍然是正确的。
要获取您自己的默认值而不是变量类型的框架默认值,您可以修改构造函数类型以设置默认值。