我相信您可以在同一项目中同时拥有EF Core和EF 6,但是,我很难使迁移工作
该项目始于EF4,并已演变为EF6。迁移正常。
我添加了EF Core,因为我们在解决方案中添加了一个新的ASPNET核心网站。现在我有一个单独的核心认同背景。
实际上有人在现实世界制作的网站上做到了这一点,还是我只是在浪费时间?
更新:这是我目前拥有的。一个具有指向EF 6的EntityContext的数据项目,其中一个具有100个以上表的数据库。
我添加了一个新网站,它具有使用EF核心的实体上下文。我只关心Aspnet核心身份。
两个上下文指向同一db。我现在可以为每个指向到每个上下文的迁移。
问题都不是对另一个上下文。如果我在第一个上下文中有一个需要引用Aspnetusers表的对象,则无法链接它。我的感觉是不能轻易完成。
可以完成EF6和EFCORE上下文的一种"链接",尽管您需要确定自己愿意与之相关的耦合程度。以下是一些选择:
1。使用asp.net核心身份usermanager 您的EF6实体将已经具有用户ID,因此您使用UserManager.Find
将相关用户进入内存。然后,您必须匹配内存中的实体,这只有在两个上下文都可以访问用户实体的情况下(直接或间接(。但是好处是,您的上下文永远不会彼此踏上并轻松地独立发展。
2。ef6上下文中的参考aspnetuser 您将为ASPNETUSER添加一个新的实体和DBSET,然后创建一个新的迁移,然后从UP((和DOSC((中删除所有内容。这将模仿该实体的"数据库优先",因此不会无意中更新。这增加了并发问题的可能性 - 取决于您的身份设置 - 您需要在如何解决方面进行编码。另外,如果有更改,您必须手动更新实体(并创建更多空迁移(。但是好处是您可以轻松地从ef6上下文中参考Aspnetusers表。
除了共享2个实体或2个上下文外,其他任何方法都会使这些方法中的任何一种不足,然后需要类似域的事件。