我有以下型号:
public class Annonce
{
[Key]
public int annonceID { get; set; }
[DisplayName("User")]
public int userID { get; set; }
public virtual User users { get; set; }
[DisplayName("Sous type")]
public int sous_type_annonceID { get; set; }
public virtual Sous_type_annonce sous_type_annonces { get; set; }
[DisplayName("Gouvernorat")]
public int gouvernoratID { get; set; }
public virtual Gouvernorat gouvernorats { get; set; }
}
我试图在同一个实体中定义3一对多关系
这是我的DbContext:
modelBuilder.Entity<Annonce>().HasRequired(p => p.gouvernorats)
.WithMany(b => b.Annonces).HasForeignKey(b => b.annonceID);
modelBuilder.Entity<Annonce>().HasRequired(p => p.sous_type_annonces)
.WithMany(b => b.Annonces).HasForeignKey(b => b.sous_type_annonceID);
modelBuilder.Entity<Annonce>().HasRequired(p => p.users)
.WithMany(b => b.Annonces).HasForeignKey(b => b.sous_type_annonceID);
Gouvernorat、User和Sous_type_anonce具有以下ICollection:
public virtual ICollection<Annonce> Annonces { get; set; }
我收到验证错误
在模型生成过程中检测到一个或多个验证错误:
Annance_gouvernorats_Source::多重性在Role中无效关系"Annance_gouvernorats"中的"Annance_Gouvernorts_Source"。因为Dependent Role指的是键属性Dependent Role的多重性的绑定必须为"1"。
哪里出了问题,我该如何解决?
我修复了问题
modelBuilder.Entity<Annonce>().HasRequired(p => p.gouvernorats)
.WithMany(b => b.Annonces).HasForeignKey(b => b.gouvernoratID);
带有"gouvernoratID"而不是"annonceID">
modelBuilder.Entity<Annonce>().HasRequired(p => p.gouvernorats)
.WithMany(b => b.Annonces).HasForeignKey(b => b.annonceID);