一个EF6模型(数据库优先)和一个代码优先解决方案

我有一个有多个数据库的解决方案。 我们正在使用EF6。

我们有一个项目是EF6(代码优先),一个项目是EF6 DB优先。

var arkleModelDbFist = new Arkle.DAL.EF.ArkleEntities();
var CustomerOld= new Arkle.DAL.EF.Customer();
arkleModelDbFist.Customers.Add(CustomerOld); // Errors on this line
arkleModelDbFist.SaveChanges();


var arkleModelCodeFirst = new ArkleEfModel();
var customer= new customer_ef(); // note we have renamed this so it won't conflict, even though it is in seperate project
arkleModelCodeFirst.Customers.Add(customer);
arkleModelCodeFirst.SaveChanges();

我们正在收到以下错误。

System.Data.Entity.Infrastructure.UnintentionalCodeFirstException未处理

Message =在代码优先模式下使用上下文,并使用EDMX文件为数据库优先或模型优先开发生成的代码。 这将无法正常工作。 要解决此问题,请不要删除引发此异常的代码行。 如果您希望使用Database First或Model First,请确保实体框架连接字符串包含在启动项目的app.config或web.config中。 如果您正在创建自己的DbConnection,那么请确保它是一个EntityConnection而不是其他类型的DbConnection,并且将其传递给采用DbConnection的基本DbContext构造函数之一。 要详细了解Code First,Database First和Model First,请参阅此处的实体框架文档:http://go.microsoft.com/fwlink/?LinkId = 394715

StackTrace:在Arkle.DAL.EF.ArkleEntities.OnModelCreating(DbModelBuilder modelBuilder)

无论如何,在一个解决方案中首先允许代码优先和db优先?


好的,到底了。 基本上,如果你在两个上下文中共享一个连接,这是行不通的。 但是,如果你使用不同的连接,它的工作。

感谢Ben Robinson指引我朝着正确的方向发展。

链接地址: http://www.djcxy.com/p/49691.html

上一篇: Solutions with one EF6 model (db first) and one code first

下一篇: EF6 1:optional + 1:many