2008-10-09 108 views
0

我正在使用鏈接到SQL,我有一組連接的對象。LinqtoSQL和問題

我開始出去做這樣

Dim L= from II in context.InventoryItems select II 
Dim L2 = L.tolist 

第二行LINQ的聲明是這樣我就可以縮小其中的問題是發生的歷史。當第二行命中時,我得到一個錯誤「實體集已經加載,源不能改變」

任何想法可能會導致這種情況?

+0

這是一個新鮮的背景還是你之前使用過它? 您確定要從數據庫中加載*全部*庫存項目嗎?這就是你在ToList調用中所做的。 這將有助於添加異常本身和堆棧跟蹤。 – 2008-10-12 10:54:57

回答

0

對於任何感興趣的人,要小心你在構造函數中做了什麼,我正在初始化構造函數中的一些東西,而這些東西本來不應該存在,並且導致從datacontext加載時出錯。

1

Omer的評論帶來了一個非常好的觀點:這個DataContext是從以前的操作中重用的嗎?如果是這樣的話,你可能想看看Dino Esposito的blog post關於DataContext的生命週期,以確保你不會太長時間。

這個錯誤聽起來像是你可能已經使用DataContext從InventoryItems表中加載了數據,並且可能對綁定到DataContext的實體進行了一些更改,這些實體尚未提交。如果你用一個全新的DataContext嘗試你的代碼而不指定任何特殊的DataLoadOptions,它應該可以工作。