我有一个包含三列a,b和c的实体。如果我将ObjectSet投影到匿名类的对象:
var ret = e.foos.Select(x => new {
a = x.a,
b = x.b
}).ToList();
然后实际的SQL只包含填充每个对象所需的列:
SELECT
[Extent1].[a] AS [a],
[Extent1].[b] AS [b]
FROM [dbo].[foo] AS [Extent1]
如果我将EntityObject包含为匿名类的属性,那么实体中的所有列都包含在SQL中,即使只显式调出“a”和“b”:
var ret = e.foos.Select(x => new {
a = x.a,
b = x.b,
o = x
}).ToList();
SELECT
[Extent1].[a] AS [a],
[Extent1].[b] AS [b],
[Extent1].[c] AS [c]
FROM [dbo].[foo] AS [Extent1]
有没有一种方法可以排除从数据库中提取列“c”,同时仍然在我的匿名对象中引用了EntityObject?
答案 0 :(得分:1)
也许如果你考虑一下ret.o.c
时会发生什么,你就会意识到实体按照你想要的方式行事是没有意义的。
答案 1 :(得分:1)
您是否询问是否可以获取尚未填充其属性的实体引用?我不认为这是支持的。但是,只需检索实体类的主键即可获得几乎同样多的好处,无论如何,这应该是识别实体所需的全部内容。