23

我放弃。我发现了这个: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"/>

笔记。后来我添加了初始目录,以尝试它是否可以工作,但它完全一样。

4

4 回答 4

32

这是错误的连接字符串。使用模型优先/数据库优先 (EDMX) 后,您必须使用实体连接字符串来引用 .ssdl、.msl 和 .csdl 元数据文件。另请注意,从 EDMX 创建模型时,您必须在设计时创建数据库 = 您必须生成 SQL 脚本并执行它来创建数据库。

于 2011-05-09T21:56:12.327 回答
2

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

于 2013-01-03T23:39:01.007 回答
0
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.
于 2015-02-15T07:15:42.833 回答
-1

删除或评论:

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

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

于 2015-07-02T09:25:42.997 回答