2010-11-15 88 views

回答

0

我不知道刷新EF大表是什麼意思,但避免此異常的唯一方法是確保您不會加載大量數據進入內存或爲您的機器添加更多內存。

+0

我的意思是Model.Refresh(RefreshMode.StoreWins,tablename)。該表有4919653行。這樣做的原因是,該表由sql更新。 EF無法識別這些更改。 – 2010-11-15 16:03:35

+0

請幫幫我。 – 2010-11-15 16:35:53

+0

我不知道如何幫助你,除了說:**不要**將4919653行加載到內存中。 – 2010-11-15 16:37:01

1

Like Darin說刷新模型不會加載任何行。

由於您在代碼中刷新模型,我懷疑代碼中可能存在加載所有行或具有無限循環的內容。

您可以通過打開文件並編輯xml來直接編輯EF模型。但是如果你這樣做,你需要非常小心。

+0

這是實際的故事 – 2010-11-15 18:12:13

+0

我希望我能正確地闡述。 我已經做了一些數據庫更新的代碼。它有2個部分。 1. EF調用存儲過程來更新數據庫。 (這是大的現有邏輯,所以我不能在linq中重寫) 2. EF + linq也以相同的方法執行一些DB操作。在某些時候,它使用SP完成的數據庫更改。 問題是,EF無法識別SP所做的更改。 當EF獲取數據時,它仍然具有舊值。 如何刷新EF? – 2010-11-15 18:12:37

+0

如果您對錶格的結構進行更改,則只需刷新模型。 – 2010-11-15 18:23:18