//关于模型创建:
受保护的覆盖无效 OnModelCreating(DbModelBuilder modelBuilder) {
// Person
modelBuilder.Entity<Person>().HasKey(e => e.PersonID)
.ToTable("Persons")
.Property(e => e.PersonID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
//Referancial
modelBuilder.Entity<Referancial>().HasKey(e => e.KeyID)
.ToTable("Referancials")
.Property(e => e.KeyID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
//Translation
modelBuilder.Entity<Translation>().ToTable("Translations")
.HasKey(e => e.KeyID)
.Property(e => e.KeyID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
modelBuilder.Entity<Referancial>()
.HasOptional(e=>e.Translations)
.WithMany()
.HasForeignKey(e => e.KeyID);
base.OnModelCreating(modelBuilder);
}
但它给我一个错误:
在模型生成期间检测到一个或多个验证错误:
PersonSearch.Models.Referancial_Translations::多重性与关系“Referancial_Translations”中角色“Referancial_Translations_Target”中的引用约束冲突。因为从属角色中的所有属性都不可为空,所以主体角色的多重性必须为“1”。Referancial_Translations_Source::多重性在关系“Referancial_Translations”中的角色“Referancial_Translations_Source”中无效。因为从属角色指的是关键属性,所以从属角色的多重性的上限必须是“1”。