首先使用 DbContext 建模,无法初始化新的数据库



我放弃了。我发现这个:http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx并认为,这很酷。因此,我迅速重新设计了我的模型,以利用两全其美的优势。

但是现在我的模型无法创建新数据库(或将 tabls 添加到现有数据库)。我收到此错误:

如果在代码优先

模式下使用,则使用用于数据库优先和模型优先开发的 T4 模板生成的代码可能无法正常工作。若要继续使用"数据库优先"或"模型优先",请确保在执行应用程序的配置文件中指定实体框架连接字符串。若要使用这些从"数据库优先"或"模型优先"生成的类,请使用"代码优先"添加使用属性或 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 脚本并执行它以创建数据库。

我想当

有人首先将 EDMX/db 添加到解决方案中的类库时,通常会出现此错误。如果这样做,请确保在类库项目的 App.config 文件中添加的连接字符串在 web.config 或 exe 项目配置文件中可用(因此只需将其复制/粘贴到此处)。

Add this connection string to web config and make changes:
<add name="Entities" 
connectionString="
metadata=res://*/EFmodel.csdl|res://*/EFmodel.ssdl|res://*/EFmodel.msl;
provider=System.Data.SqlClient;provider 
connection string=&quot;
data source=SAI-PC;
initial catalog=OrderDB;
user id=sa;
password=Pass$123;
MultipleActiveResultSets=True;
App=EntityFramework&quot;" 
providerName="System.Data.EntityClient" />
EFmodel is my .edmx file name.
OrderDB is database name.

删除或评论此内容:

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

并将连接字符串更改为有效的字符串。

相关内容

  • 没有找到相关文章

最新更新