根据评论中的建议对新情况进行了编辑:
目前我有这个映射
public ShowMap() {
ToTable("Shows");
HasKey(x => x.ShowID);
Property(x => x.ShowID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.IsRequired()
.HasColumnName("ShowID");
}
public EpisodeMap() {
ToTable("Episodes");
HasKey(x => x.EpisodeID);
Property(x => x.EpisodeID)
.IsRequired()
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.HasColumnName("EpisodeID");
Property(x => x.ShowID)
.IsRequired()
.HasColumnName("ShowID");
Property(x => x.EpisodeNumber)
.IsRequired()
.HasColumnName("EpisodeNumber");
}
这将产生以下数据库:
但是,当运行种子方法时,我收到此错误。由于我无法从命令行命令调试变量的值Update-Database
(至少,据我所知),我看不到该属性包含什么。
一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。
当我将关系添加到映射时,我收到以下错误:
在模型生成期间检测到一个或多个验证错误:
System.Data.Entity.Edm.EdmAssociationEnd::多重性在关系“Episode_Show”中的角色“Episode_Show_Source”中无效。因为从属角色指的是关键属性,所以从属角色的多重性的上限必须是“1”。
关系:
HasRequired(x => x.Show)
.WithMany(x => x.Episodes)
.HasForeignKey(x => x.EpisodeID);
这是模型:
public class Episode {
public int EpisodeID {get; set;}
public int ShowID {get; set;}
public int EpisodeNumber {get; set;}
public virtual Show Show { get; set; }
}
public class Show {
public int ShowID {get; set;}
public virtual ICollection<Episode> Episodes { get; set; }
}
我忽略了什么导致验证错误?
编辑:为了确定我没有忘记任何东西,这是 github 上的项目。