2010-12-11 38 views
2

有一個有很多關係的實體,當我說EF在一個實體上加載查詢時,它會加載所有屬性(確定)與關係(我不想)!How to say EF,不加載所有屬性!

這是對性能的重大懲罰,因爲我只是需要一些屬性而不是所有的關係。

怎麼說EF只是加載實體的屬性和不加載關係(EntityCollection<TEnitity>)?

我想用手加載關係的屬性!

回答

3

您確定導航屬性正在急切加載嗎?他們不應該默認。你使用POCO還是Code First?如果你是,那麼你需要確保你的導航屬性被標記爲「虛擬」。虛擬屬性將被延遲加載。

要檢查導航屬性是延遲加載還是加載,您將需要使用SQL Profiler之類的工具。

1

JohnnyO是正確的; ObjectContextOptions.LazyLoadingEnabled的默認值是false。但是,從數據庫創建模型時,模型的默認值爲true。如果您正在使用生成的EF類,請嘗試將其設置爲false

alt text