![](/img/trans.png)
[英]The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations
[英]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無法確定CrimeReport
和ReportDescription
是必需的:必需的關系,並共享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.