簡體   English   中英

必須明確配置此關聯的主體端

[英]The principal end of this association must be explicitly configured

我正在嘗試通過代碼優先方法創建表。 我有兩個表“ CrimeReport”和“ ReportDescription”,它們具有一對一的關系。

[Table("CrimeReport")]
    public class CrimeReport
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
         public  int  ImageId { get; set; }
         public virtual ReportDescription ReportDescription { get; set; }

    }


    [Table("ReportDescription")]
    public class ReportDescription
    {



        [Key]
        public int ImageId { get; set; }
        public virtual CrimeReport CrimeReport { get; set; }

    }

我在軟件包控制台中編寫命令“ add-migration try”時遇到異常。

無法確定類型'codefirst.Models.ReportDescription'和'codefirst.Models.CrimeReport'之間的關聯的主要終點。 必須使用關系流利的API或數據注釋顯式配置此關聯的主要端。

您需要使用[Required]屬性標記ReportDescription.CrimeReport

[Table("ReportDescription")]
public class ReportDescription
{
    [Key]
    public int ImageId { get; set; }

    [Required]
    public virtual CrimeReport CrimeReport { get; set; }

}

否則,EF無法確定CrimeReportReportDescription必需的:必需的關系,並共享ImageId作為密鑰。

等效的FluentAPI映射為:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<ReportDescription>()
        .HasRequired(x => x.CrimeReport)
        .WithRequiredDependent(x => x.ReportDescription);
}

暫無
暫無

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

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