繁体   English   中英

EntityFramwork 与 .net 框架 4.7.2 项目和 .net 标准 2.0 项目的兼容性

[英]EntityFramwork compatibility with .net framework 4.7.2 projects and .net standard 2.0 project

我共享了使用实体框架 6.4 的项目,它代表其他项目中使用 .net 框架 4.7.2 的数据访问层。

我还创建了一个 azure function 版本 2 项目。 该框架是 .net 标准 2.0,它支持 .net 核心 2,因为它是 azure 功能所必需的。

当我想在 azure function 中使用该共享实体框架项目时,就会出现问题。 由于 .net 标准 2.0 不支持 EntityFramework 6.4

我正在寻找升级或降级甚至框架更改的解决方案,以在 azure function 和所有其他项目中使用该共享实体框架项目。

Entity Framework 6.4 与 netstandard 2.1 兼容,但不兼容 2.0,这意味着它至少需要 dotnet core 3.0。

但是,如果您可以将 azure function 项目升级到目标核心 3.0,则可以在数据层项目中启用多目标。

打开csproj文件并替换:

<TargetFramework>netstandard2.0</TargetFramework>

经过

<TargetFrameworks>netstandard2.1;net472</TargetFrameworks>

注意从TargetFrameworkTargetFrameworks的变化,这很重要!

这将使项目能够被针对完整框架(4.7.2 及更高版本)的项目以及网络标准 2.1 支持的任何项目引用。

如果您使用 v1 版本的 Azure 函数,则兼容性问题较少,例如支持 EF,但您可能仍会遇到其他依赖项的问题。

过去,我通过创建 V2 函数获得了巨大的成功,这些函数充当“前端”,将消息发布到事件中心或服务总线队列。 然后使用连续的 web 作业来处理 .net 框架代码中的这些排队消息,我现在将其称为解决方案的“遗留”部分。

Another option is to use a REST API that runs in .net fx, this will keep your functions lightweight as they only need to call endpoints in the API

@Aryan 你有没有解决过这个问题? 如果您的共享数据库的目标是 .net 框架 4.7.2(netStandard 2.0),那么您的 Azure ZC1C425268E68385D1AB5074C17A904F14 是否与共享库兼容? 如果您的数据库针对 .net 框架 4.5,可能会发生这种情况? EF 6.4 实际上以网络标准 2.1 或 .net 框架 4.5 为目标。 想法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM