簡體   English   中英

實體框架生成新列,而不是鏈接提到的外鍵

[英]Entity Framework generates new column rather then linking the mentioned foreign key

我正在使用代碼優先的方法來創建數據庫表。 當遷移發生時,它會在數據庫表名Complaints中創建一個新的列名ReceiverUserInfoId 我已將 forgein 鍵關系定義為:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.HasAnnotation("Relational:Collation", "SQL_Latin1_General_CP1_CI_AS");
    
    modelBuilder.Entity<Complaint>()
    .HasOne(x => x.ReceiverUserInfo)
    .WithMany()
    .HasForeignKey("ReceivingOfficer")
    .OnDelete(DeleteBehavior.Cascade)
    .IsRequired();
}

Model 用於Complaint.cs ReceivingOfficer列應鏈接到數據庫表AspNetUsers中的列名Id

public class Complaint
{
    [Key]
    public int? ComplaintID { get; set; }
    ...
    public string ReceivingOfficer { get; set; }
    ...
    public virtual User ReceiverUserInfo { get; set; }
}

這是User.cs model

public class User : IdentityUser
{
    public string FullName { get; set; }
    public DateTime DateCreated { get; set; }
    public DateTime DateModified { get; set; }
}

這是通過 SSMS 建立的關系在此處輸入圖像描述

我已嘗試使用您提供的信息復制您的問題,它對我有用。 請仔細檢查以下幾點:

  1. 您確定正在執行遷移嗎?
  2. 您是從另一個文件導入modelBuilder器嗎? 如果是,您確定該文件包含在OnModelCreating中嗎

暫無
暫無

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

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