0

我從另一個數據庫中檢索數據,該數據庫已經爲每個「啤酒」實體創建了唯一的ID。但是,當我將遠程數據庫中的唯一鍵值賦給新的「啤酒」對象時,只要將對象插入到數據庫中,它就會被替換。如何使用戶分配的實體鍵值

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.ComponentModel.DataAnnotations; 
using BeerRecommender.Models.ViewModels; 

namespace BeerRecommender.Models 
{ 
    public class Beer 
    { 
     public Beer() 
     { 
      Created = DateTime.Now; 
      Updated = DateTime.Now; 
     } 

    [Key] 
    public int ID { get; set; } 

    public string Name { get; set; } 

    public string Description { get; set; } 

    public Brewery Brewery { get; set; } 

    public DateTime Created { get; set; } 

    public DateTime Updated { get; set; } 

    public ICollection<City> Cities { get; set; } 

    public ICollection<Tag> Tags { get; set; } 

    public Style Style { get; set; } 
    } 
} 

我正在使用UnitOfWork模式。

UnitOfWork.BeerRepository.Insert(beer); 
UnitOfWork.Save(); 

回答

1

正如你已經發現,EF會爲int主鍵的值。要微調,你需要這種行爲,以紀念與DatabaseGenerated屬性的鍵(或者你也可以用在fluent apiHasDatabaseGeneratedOption方法配置此):

[Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int ID { get; set; } 
相關問題