1. 程式人生 > >AspMVC -EF 使用過程中出現錯誤及解決

AspMVC -EF 使用過程中出現錯誤及解決

在.Net 使用EF如果不正確,可能會出現異常錯誤。一般而言,有可能以下錯誤場景

1,在程式集“XXX”中未找到遷移配置型別“XXX.Migrations.Configuration”。

這種錯誤出現在定義的DBContext 類與定義的web.config 資料連線串名稱不一致,應將兩者保持一致。如下面所示

配置檔案:

<add name="MusicStoreEntities" connectionString=" Data Source=.;Initial Catalog=test;User ID=test;Password=test;"

類檔案:

 public class MusicStoreEntities : DbContext 
    {
        public DbSet<Album> Albums { get; set; }
        public DbSet<Genre> Genres { get; set; }
    }

2,The project 'XXXX' failed to build. 

有時在Visio studio 中的“程式包管理器控制檯”中執行update-database 會出現如下類似錯誤

The project 'MvcApplication1' failed to build.
工程編譯錯誤

這種情況一般是因為程式自身有明顯的編譯問題,可編譯工程發現具體錯誤在什麼位置。

3,無法將資料庫更新為與當前模型匹配,因為存在待定更改並且禁用了自動遷移。將待定模型更改寫入基於程式碼的遷移或啟用自動遷移。將 DbMigrationsConfiguration.AutomaticMigrationsEnabled 設定為 true 以啟用自動遷移。

這種情況一般是在工程內的Migrations 資料夾中的Configuration.cs 檔案沒有定義AutomaticMigrationsEnabled屬性為true導致。可修改如下

        public Configuration()
        {
            AutomaticMigrationsEnabled = true;
        }

在檔案內容顯示為AutomaticMigrationsEnabled=true 時,有時也會報這類錯誤。這往往是因為執行了enable-migrations -force 強制修改了這類檔案導致,檔案顯示資訊已與工程實際資訊不一致,對Configuration.cs 檔案關閉再開啟,即可發現AutomaticMigrationsEnabled=false

4,不支援關鍵字: “XXX”。

這種問題,有可能發生在web.config 的資料庫連線配置字串資訊,正確形式可如下所示
connectionString="Data Source=.;Initial Catalog=test;User ID=test;pwd=test" />