コメントの提案ごとに新しい状況で編集:
現在、私はこのマッピングを持っています
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
(少なくとも、私が知る限りではありません)、プロパティが保持しているものを確認できません。
1 つ以上のエンティティの検証に失敗しました。詳細については、「EntityValidationErrors」プロパティを参照してください。
関係をマッピングに追加すると、次のエラーが表示されます。
モデルの生成中に 1 つ以上の検証エラーが検出されました:
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のプロジェクトです。