亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當流暢配置使用 HasDatabaseGenerateOption 時,如何將實體框架項目遷移到

當流暢配置使用 HasDatabaseGenerateOption 時,如何將實體框架項目遷移到

C#
暮色呼如 2023-07-23 14:05:58
我有一個 .NET Framework 4.6.1 類庫,其中包含我的存儲庫層。我們正在構建 ASP.NET Core API,并希望在短期內訪問現有存儲庫以減少遷移工作。我們正在將存儲庫遷移到 .NET Standard 2.0 類庫。存儲庫層使用 Entity Framework 6.2,并對實體使用流暢的配置。我遇到的挑戰是,我們有幾個地方使用 DatabaseGenerateOption,它是在 System.ComponentModel.DataAnnotations 中定義的,它是一個框架庫,似乎不適用于 .NET Standard。有一個NuGet包System.ComponentModel.Annotations,但它似乎沒有幫助。有沒有辦法保留 DatabaseGeneratedOption 配置,或者我需要刪除它并希望實體框架正確地從數據庫結構中猜測配置?不起作用的配置看起來像這樣:HasKey(e => e.Id).Property(e => e.Id).HasColumnName("Id").HasColumnType("uniqueidentifier").HasDatabaseGeneratedOption(    System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None).IsRequired();
查看完整描述

2 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

在您的實體中,您可以執行以下操作:

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int Id { get; set; }

這需要使用 System.ComponentModel.DataAnnotations

    <PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" />



查看完整回答
反對 回復 2023-07-23
?
aluckdog

TA貢獻1847條經驗 獲得超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,盡管這在短期內對我們來說不起作用。


查看完整回答
反對 回復 2023-07-23
  • 2 回答
  • 0 關注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號