我正在使用鏈接到SQL,我有一組連接的對象。LinqtoSQL和問題
我開始出去做這樣
Dim L= from II in context.InventoryItems select II
Dim L2 = L.tolist
第二行LINQ的聲明是這樣我就可以縮小其中的問題是發生的歷史。當第二行命中時,我得到一個錯誤「實體集已經加載,源不能改變」
任何想法可能會導致這種情況?
我正在使用鏈接到SQL,我有一組連接的對象。LinqtoSQL和問題
我開始出去做這樣
Dim L= from II in context.InventoryItems select II
Dim L2 = L.tolist
第二行LINQ的聲明是這樣我就可以縮小其中的問題是發生的歷史。當第二行命中時,我得到一個錯誤「實體集已經加載,源不能改變」
任何想法可能會導致這種情況?
對於任何感興趣的人,要小心你在構造函數中做了什麼,我正在初始化構造函數中的一些東西,而這些東西本來不應該存在,並且導致從datacontext加載時出錯。
Omer的評論帶來了一個非常好的觀點:這個DataContext是從以前的操作中重用的嗎?如果是這樣的話,你可能想看看Dino Esposito的blog post關於DataContext的生命週期,以確保你不會太長時間。
這個錯誤聽起來像是你可能已經使用DataContext從InventoryItems表中加載了數據,並且可能對綁定到DataContext的實體進行了一些更改,這些實體尚未提交。如果你用一個全新的DataContext嘗試你的代碼而不指定任何特殊的DataLoadOptions,它應該可以工作。
這是一個新鮮的背景還是你之前使用過它? 您確定要從數據庫中加載*全部*庫存項目嗎?這就是你在ToList調用中所做的。 這將有助於添加異常本身和堆棧跟蹤。 – 2008-10-12 10:54:57