簡體   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