C# .NET核心和完整.NET之间的共享DbContext

C# .NET核心和完整.NET之间的共享DbContext,c#,.net,entity-framework,.net-core,C#,.net,Entity Framework,.net Core,我们有一个相当大的数据库,我们有一个共享的代码优先模型(我们不使用迁移)。该模型封装在NuGet包中,并暴露于内部NuGet提要中。 这个NuGet被几个包含许多应用程序(一些大型web应用程序,许多小型工具)的解决方案所使用 例如,有以下解决方案: 主网站(电子商店) 管理 原料药 B2B门户 多个同步器(填充多个供应商的产品目录) 报告工具 事务分析器 其他支持工具 所有这些应用程序都是在完整的.NET 4.7中编写的,引用了同一个内部NuGet包和DbContext。 我们希望重构一些

我们有一个相当大的数据库,我们有一个共享的代码优先模型(我们不使用迁移)。该模型封装在NuGet包中,并暴露于内部NuGet提要中。 这个NuGet被几个包含许多应用程序(一些大型web应用程序,许多小型工具)的解决方案所使用

例如,有以下解决方案:

  • 主网站(电子商店)
  • 管理
  • 原料药
  • B2B门户
  • 多个同步器(填充多个供应商的产品目录)
  • 报告工具
  • 事务分析器
  • 其他支持工具
所有这些应用程序都是在完整的.NET 4.7中编写的,引用了同一个内部NuGet包和DbContext。 我们希望重构一些应用程序以使用.NETCore2

我们正在寻找一种使用尽可能多的共享代码创建dbget的方法。 例如,在一个针对.NET标准的项目中创建POCO类,然后为DbContext创建两个项目——一个针对.NET framework,另一个针对.NET Core?每当发生数据库更改时,我们需要避免每次更改两次


谢谢

如果您想这样做,您需要删除对Entity Framework 6的所有引用,并将其替换为Entity Framework Core,因为它是唯一一个同时在.NET Framework和.NET Core上运行的版本。我真的这么认为吗?对于每个数据库更改,您都必须测试整个应用程序套件,而实际上可能只有少数几个应用程序套件受到影响。我认为我更喜欢为每个应用程序(或应用程序组)提供专门的上下文,因此一次数据库修改可能只涉及其中的几个应用程序,甚至只涉及一个应用程序。也许其中一些较小的工具只需要非常有限的表子集,这些表可能会稳定多年。Gert Arnold确实如此,但是不同的工具需要不同的表。这意味着要复制很多POCO类,这将是我们试图避免的情况。