EntityFramwork与.net Framework 4.7.2项目和.net standard 2.0项目的兼容性

问题描述 投票:0回答:2

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

我还创建了一个天蓝色函数版本2项目。该框架是支持.net core 2的.net标准2.0,这是Azure功能所需的。

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

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

c# entity-framework azure-functions .net-standard-2.0 .net-4.7.2
2个回答
0
投票

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

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

打开csproj文件并替换:

<TargetFramework>netstandard2.0</TargetFramework>

作者

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

注意从TargetFrameworkTargetFrameworks的更改,这很重要!

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


0
投票

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

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

另一种选择是使用在.net fx中运行的REST API,这将使您的函数轻巧,因为它们只需要在API中调用端点即可

© www.soinside.com 2019 - 2024. All rights reserved.