2010-07-27 49 views
1

我有一個包含三列a,b和c的實體。如果一期項目的對象集到一個匿名的類的對象:在不包括所有列的情況下在LINQ中包含EntityObject到實體投影

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?

回答

1

也許如果你考慮一下當你去ret.o.c時會發生什麼,你會發現實體按照你想要的方式行事是沒有意義的。

1

你問是否有可能獲得未填充其屬性的實體引用?我不認爲這是支持的。但是,只要檢索實體類的主鍵,您就可以獲得同樣多的好處,無論如何,這應該是您識別實體所需的全部內容。

相關問題