我有一个具有多个数据库的解决方案。我们正在使用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 =上下文在Code First模式下与从EDMX文件生成的代码一起用于Database First或Model First开发。这将无法正常工作。若要解决此问题,请不要删除引发此异常的代码行。如果希望使用数据库优先或模型优先,请确保在启动项目的app.config或web.config中包含Entity Framework连接字符串。如果要创建自己的DbConnection,请确保它是EntityConnection而不是其他类型的DbConnection,并将其传递给采用DbConnection的基本DbContext构造函数之一。要了解有关“代码优先”,“数据库优先”和“模型优先”的更多信息,请参见Entity Framework文档,网址为:http : //go.microsoft.com/fwlink/?LinkId=394715
StackTrace:位于Arkle.DAL.EF.ArkleEntities.OnModelCreating(DbModelBuilder modelBuilder)
无论如何,在一个解决方案中是否允许代码优先和数据库优先?
好的,深入了解这一点。基本上,如果您在两个上下文之间共享连接,则此操作将无效。但是,如果您对两者都使用不同的连接,则它将起作用。
感谢本·鲁滨逊为我指出正确的方向。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句