2015-12-01 87 views
1

我正在使用linq to sql來處理數據庫。 我有一個DataContext實例,在程序開始時加載大量實體​​並將它們提取到RAM中。從另一個datacontext加載datacontext實體

現在我需要創建一個新的DataContext並從我的第一個DataContext加載實體,而不是從數據庫中獲取它們。 (因爲在獲得速度的問題,從本地網絡數據庫實體)

是這樣的:

DataContext _globalDC = DB._dc; 
//Do some entity loading ... 
DataContext _localDC = _globalDC.Clone() 

現在我應該能夠採取行動正常,_localDC(查找,插入,更新,... )而不影響_globalDC。

可能嗎?

回答

0

不可能。 DataContext沒有本地Clone方法,因此如果您要創建一個擴展方法,請指定Clone,那麼您只能複製公共屬性。但是這是上下文的內部狀態,它使它成爲一個工作環境(元數據和狀態跟蹤等)。

您最好的機會是克隆實體對象並將它們附加到新的上下文中。

但我認爲你實際上正在尋找的是一種適用於LINQ to SQL的緩存解決方案。這可能是一個很好的起點:How do you implement caching in Linq to SQL?

+0

是啊這就是我一直在尋找,謝謝。 –