2012-05-16 39 views
38

我正在使用EF 4.3並且有一個需要與其他庫使用EF Code First 4.3生成的數據庫對話的上下文。背景是拋出一個異常,說明如何在Entity Framework 4.3中禁用模型兼容性檢查?

自創建數據庫 以來,支持「上下文」上下文的模型已更改。考慮使用的Code First遷移從模型構建器中取出IncludeMetadataConvention更新 數據庫

在EF 4.1這可以diabled。但是,在4.3中,這個約定已被廢棄,不再有效果。

如何在EF 4.3生成的數據庫上創建EF 4.3上下文對話框?我發現的唯一選擇(這非常不理想)是刪除元數據表,從而導致這兩個上下文假定數據庫不是由EF構建的。

PS:我知道這種情況是可能會提意見有關爲什麼我需要這樣做;我知道這很不理想,但放心,這是我需要解決的一個問題,並且有限的選項可以用於橫向工作。

回答

67

將初始化程序設置爲null將跳過模型兼容性檢查。

Database.SetInitializer<MyContext>(null); 
+2

完美,作品完全如我所願。謝謝! – STW

+1

你把這個放在哪裏? – jep

+4

您的上下文中的靜態構造函數對於大多數應用程序似乎都工作得很好。 – bricelam

15

對於EF 4.3或

Database.SetInitializer<MLTServerWatcherContext>(null); 

或者如果使用EF

modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); 

的舊版本更高(我知道,他說他正在使用EF 4.3,但我認爲這是很好的也顯示此選項)

相關問題