2017-10-16 147 views
0

我試圖從與實體框架數據庫中刪除的項目列表中,但我不能讓子列表不加載,實體框架 - 刪除列表項

基本上我有當清單該列表中的每個項目都包含一個2列表,我不想加載子列表,而只是列出它自己的列表。

我該如何加載列表而不是其子列表?

回答

1

子列表在評估時有可能是LazyLoaded。你可以把延遲加載了與

DbContext.Configuration.LazyLoadingEnabled = false; 

更多細節here。我通常在我的上下文的構造函數中關閉LazyLoading,並用include語句加載任何我需要的東西。延遲加載也會導致性能問題。如果您通過延遲加載集合進行循環,則最終會在集合中爲每個項目打一個數據庫命中。

+0

試圖將它添加到這裏,但似乎沒有解決不加載公共的DbContext() 名單:基地( 「NAME =的DbContext」) { Configuration.LazyLoadingEnabled = FALSE; } – Max

+0

你可以在那裏放置一個斷點,並驗證它是否使用該構造函數。你也可以發佈查詢。 –

+0

它確實打破了突破點,現在似乎工作,我想我可能沒有重新加載它或什麼。不過,我仍然收到以下錯誤。 System.Data.Entity.Infrastructure.DbUpdateException:'保存不爲其關係提供外鍵屬性的實體時發生錯誤。 EntityEntries屬性將返回null,因爲單個實體不能被識別爲異常的來源。通過在您的實體類型中公開外鍵屬性,可以更輕鬆地處理保存時的異常。有關詳細信息,請參閱InnerException。' – Max