我有一個 .NET Framework 4.6.1 類庫,其中包含我的存儲庫層。我們正在構(gòu)建 ASP.NET Core API,并希望在短期內(nèi)訪問現(xiàn)有存儲庫以減少遷移工作。我們正在將存儲庫遷移到 .NET Standard 2.0 類庫。存儲庫層使用 Entity Framework 6.2,并對實體使用流暢的配置。我遇到的挑戰(zhàn)是,我們有幾個地方使用 DatabaseGenerateOption,它是在 System.ComponentModel.DataAnnotations 中定義的,它是一個框架庫,似乎不適用于 .NET Standard。有一個NuGet包System.ComponentModel.Annotations,但它似乎沒有幫助。有沒有辦法保留 DatabaseGeneratedOption 配置,或者我需要刪除它并希望實體框架正確地從數(shù)據(jù)庫結(jié)構(gòu)中猜測配置?不起作用的配置看起來像這樣:HasKey(e => e.Id).Property(e => e.Id).HasColumnName("Id").HasColumnType("uniqueidentifier").HasDatabaseGeneratedOption( System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None).IsRequired();
2 回答

POPMUISE
TA貢獻1765條經(jīng)驗 獲得超5個贊
在您的實體中,您可以執(zhí)行以下操作:
[Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int Id { get; set; }
這需要使用 System.ComponentModel.DataAnnotations:
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" />

aluckdog
TA貢獻1847條經(jīng)驗 獲得超7個贊
解決方案是我為 EF 6.2 存儲庫層使用 .NET Framework 類庫(我使用 v4.7.2 作為目標框架版本)。由于缺少 .NET Framework 依賴項(System.Configuration.ConfigurationManager 和遷移),EF 6.2 無法在 netstandard2.0 類庫中工作。
如果將 .NET Core 應用程序的目標框架設置為 .net Framework(例如 net472),則 .NET Core 應用程序可以引用 .NET Framework 類庫,但會失去跨平臺功能。如果需要跨平臺,可以使用 EF Core,盡管這在短期內(nèi)對我們來說不起作用。
- 2 回答
- 0 關(guān)注
- 188 瀏覽
添加回答
舉報
0/150
提交
取消