我最近從EF 4.3.1升級到4.4,並且發生了一些奇怪的事情。自從升級以來,我已經觸及代碼,所以我不能100%肯定地說是造成這個問題的原因。EF 4.4代碼優先 - 自動生成創建數據庫的兩個實例
無論如何,當我吹掉現有的數據庫並從PM控制檯調用Update-Database時,它會創建一個數據庫,但是具有我的上下文的完全限定名稱。 I.e.,MyProject.Data.MyContext。以前,它只是創建了一個名爲MyContext的數據庫。爲了測試目的,我可以初始化數據庫中的一堆數據,但是當應用程序運行時,它表示數據庫中沒有任何數據。
當我看看數據庫時,我發現現在有另一個名爲MyContext的數據庫(就像過去一樣)。當我初始化該數據庫中的測試數據時,該應用運行良好並可以看到數據。
我重寫了OnModelCreating方法。基本上看起來像這樣:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{//My modelBuilder stuff.
base.OnModelCreating(modelBuilder);}
這種方法沒有太大的改變,所以我不認爲這是罪魁禍首。有沒有人遇到過這個問題?讓我知道你是否希望我發佈更多我的代碼。
感謝您的建議。我試圖顯式地將連接字符串名稱傳遞給base,就像你建議的那樣,並且它表示在配置文件中找不到具有該名稱的連接字符串。我證實連接字符串確實存在於配置文件中,因此是可疑的。此外,我的配置文件中的EF的所有設置都被註釋掉了,但它似乎沒有抱怨這一點。似乎很奇怪。 – lintmouse 2013-02-24 15:47:24
你的回答幫助我瞭解了它的底部,所以我將它標記爲我的問題的答案。 – lintmouse 2013-02-24 16:07:23