簡體   English   中英

同時針對 ef core 3.1 和 5 是個好主意嗎?

[英]Is it a good idea to target both ef core 3.1 and 5?

我有一個小型 nuget package 與帶有 2 個表的小型數據庫交互。 我在 2 個項目中使用過它,1 是 dotnet 5,另一個是舊的 dotnet 框架 4.6,因此我的目標是 netstandard2.0,到目前為止它運行良好。

我需要將 dotnet 5 中的所有軟件包更新到最新版本,但 ef core 5 需要 dotnet 標准 2.1。 處理它的最佳方法是什么?

我考慮過多目標,但首先我不知道這是否是一個好主意,然后我不知道如何用 ef 5 來定位 dotnet standard 2.1,同時用 ef 來定位 dotnet standard 2 3.1。

針對多個版本的 EF Core(或任何其他包)可以,但請記住,它會影響 package 的可維護性,因此只有您可以決定是否值得。

  • 您是否將從 EF Core 5 的任何特定功能/性能改進中受益?
  • 您和您的用戶是否可以接受不同的行為? 如果沒有,請重新訪問前一點,因為您可能需要調整代碼來實現這一點,忽略一些 EF Core 5 附加組件。
  • 等等

關於實施:

您可以通過在ItemGroup級別使用Condition並檢查$(TargetFramework)的值來解決項目引用問題。

<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.13" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard2.0' ">
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
</ItemGroup>

在您的 C# 代碼中,您需要使用預處理器指令 ( #if NETSTANDARD2_0 ) 來區分這兩種實現。

您可以在此處閱讀有關 both.csproj 和 C# 解決方案的更詳細文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM