Dot-Net

具有 DbContext 的模型優先,無法初始化新數據庫

  • May 9, 2011

我放棄。我發現了這個:http: //blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx 並認為,這很酷。所以我很快重新設計了我的模型,以充分利用兩個世界。

但是現在我的模型無法創建新數據庫(或將表添加到現有數據庫)。我收到此錯誤:

如果在 Code First 模式下使用,使用用於 Database First 和 Model First 開發的 T4 模板生成的程式碼可能無法正常工作。要繼續使用 Database First 或 Model First,請確保在執行應用程序的配置文件中指定了實體框架連接字元串。要使用從 Database First 或 Model First 生成的這些類,使用 Code First 添加使用屬性或 DbModelBuilder API 的任何其他配置,然後刪除引發此異常的程式碼。

在:

       protected override void OnModelCreating(DbModelBuilder modelBuilder)
   {
       throw new UnintentionalCodeFirstException();
   }

這就是我的連接字元串:

   <add name="ForumContextContainer"
providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLExpress; Initial Catalog=iForum; Integrated Security=True"/>

筆記。後來我添加了初始目錄,以嘗試它是否可以工作,但它完全一樣。

這是錯誤的連接字元串。使用模型優先/數據庫優先 (EDMX) 後,您必須使用實體連接字元串來引用 .ssdl、.msl 和 .csdl 元數據文件。另請注意,從 EDMX 創建模型時,您必須在設計時創建數據庫 = 您必須生成 SQL 腳本並執行它來創建數據庫。

引用自:https://stackoverflow.com/questions/5940616