有一個有很多關係的實體,當我說EF在一個實體上加載查詢時,它會加載所有屬性(確定)與關係(我不想)!How to say EF,不加載所有屬性!
這是對性能的重大懲罰,因爲我只是需要一些屬性而不是所有的關係。
怎麼說EF只是加載實體的屬性和不加載關係(EntityCollection<TEnitity>
)?
我想用手加載關係的屬性!
有一個有很多關係的實體,當我說EF在一個實體上加載查詢時,它會加載所有屬性(確定)與關係(我不想)!How to say EF,不加載所有屬性!
這是對性能的重大懲罰,因爲我只是需要一些屬性而不是所有的關係。
怎麼說EF只是加載實體的屬性和不加載關係(EntityCollection<TEnitity>
)?
我想用手加載關係的屬性!
您確定導航屬性正在急切加載嗎?他們不應該默認。你使用POCO還是Code First?如果你是,那麼你需要確保你的導航屬性被標記爲「虛擬」。虛擬屬性將被延遲加載。
要檢查導航屬性是延遲加載還是加載,您將需要使用SQL Profiler之類的工具。
JohnnyO是正確的; ObjectContextOptions.LazyLoadingEnabled的默認值是false
。但是,從數據庫創建模型時,模型的默認值爲true
。如果您正在使用生成的EF類,請嘗試將其設置爲false
。