用于 EF Core 和 EF 6 的 .Net 标准库 DbContext

GH DevOps

我有一个在 net48 上运行的网络应用程序和几个在 netcoreapp3.1 上运行的 API。我目前的目标是 .Net 标准库中的 nestandard2.0、netcoreapp3.1 和 net48。所有的应用程序共享同一个数据库,所以我试图用我的 .Net 应用程序定位 EF 6,用我的 .Net Core API 定位 EF 核心。我能够在我的 .Net 应用程序中使用 EF Core,但有一些限制(主要是用户管理)。是否可以在我的 DbContext 类中同时定位 System.Data.Entity.DbContext 和 Microsoft.EntityFrameworkCore.DbContext?我一直在尝试这样的事情:

#if NETCOREAPP3_1
    public class MyContext: Microsoft.EntityFrameworkCore.DbContext
#elif NET48
    public class MyContext: System.Data.Entity.DbContext
#endif

我似乎还没有找到一个好的解决方案。我什至尝试将整个类放在预处理器指令中,但 nada. 这可能是不可能的,所以我可以针对 EF Core,但如果我仍然可以在我的 .Net 应用程序中使用 EF6,那么从架构的角度来看它会容易得多。

大卫布朗 - 微软

EF Core 3.1 和 EF 6.4 都适用于 netcoreapp3.1 和 net48。但是 EF Core 3.1 已经很老了,没有更高版本支持 .NET Framework。

因此,如果您想使用单个 DbContext,请使用 EF Core 6.4。它甚至更旧,但比 EF Core 3.1 更完整、更稳定。但是将 EF 6 与 .NET Core 一起使用可能会很痛苦。

我想过,但我担心 EF 的缓存。

这不是一个真正的问题。您的 net48 Web App 和 .NET Core API 是单独的应用程序,不共享任何对象。在任何情况下,每个人都有自己的 DbContext。

因此,您应该在 net48 Web 应用程序中使用 EF 6.4 或 EF Core 3.1,在 .NET Core Web API 中使用 EF 5。您可以使 DbContext 以相同的方式工作,因此使用代码只需更改命名空间,但没有使用单个 DbContext 的真正好方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单例服务和 EF Core dbContext

ef-core 中的 DbContext 和 DbcontextPool

ASP.NET Core / EF Core 6:dbContext.saveChanges() 产生堆栈溢出错误

刷新EF 6 DBContext

EF 6 Core - 多对多关系数据库优先(EF Core Power Tools/scaffold-dbcontext)

.NET标准库是否支持EF Core Add迁移?

.NET MediatR 和 EF Core DbContext 连接不支持 MultipleActiveResultSets

Net Core Worker Windows服务中的EF Core DBContext

在ASP.NET Core WebApplicationFactory中重写EF Core DbContext

.NET Core EF core中对dbcontext的并行调用

带有DbContext池和多租户的EF Core-每个租户的数据库

NET Core和EF Core的谓词构建

EF Core、EF 6 和不同的测试方法

.Net EF Core 2.1从IQueryable参数获取DbContext

抽象 ef core 2 dbContext

同时使用EF Core IdentityContext和DbContext进行订单管理

.NET Core库中的EF Core

针对.NET 4.7.2的ASP.NET Core上的ODP.NET和EF6配置

相同的 DbContext,使用 EF Core 的多个数据库

从 DBContext EF Core 创建 SQL 数据库

存储过程EF和NET CORE

ASP.NET和EF Core-对于由Scaffold-DbContext生成的模型,ModelState.IsValid始终返回true

如何在EF7 / .NET Core中为多个数据库实现DbContext继承

EF Core - 一次性 DbContext 和 Attach() - 或 - DbContext 作为成员 - 或 - 断开连接的实体

非托管代码中的ASP Net Core 1.1和EF 6异常?

使用ASP.Net Core 2 Web App使用EF6调用完整库

如何从EF Core 2.0 DbContext获取connectionString

ef-core 中的 DbContext 与 DbcontextPool

DbContext / EF6上的eSQL查询