EF Code Firstで既存のデータベースを使用し、modelBuilderを使用して構成しています。SESSIONがSUBJECTを持つことができる2つのテーブルがあり、クラスはそのようなものです。
public class SessionItem {
[Key]
public int SessionId { get;set; }
// Other Values
public int Subject_ID { get;set; }
public virtual Subject Subject { get;set; }
}
public class SubjectItem {
[Key]
public int Subject_ID { get;set; }
// Other Values
public virtual SessionItem Session { get;set; }
}
そして、modelBuilderコードは次のとおりです。
modelBuilder.Entity<SessionItem>().ToTable("tblTblSessions");
modelBuilder.Entity<Subject>().ToTable("tblTblSubjects");
modelBuilder.Entity<SessionItem>()
.HasOptional<Subject>(u => u.Subject)
.WithOptionalDependent(c => c.Session).Map(p => p.MapKey("Subject_ID"));
これは、SessionItemクラスからSubject_IDを削除するまで最初は失敗しましたが、次のエラーが発生しました。関係の多重度制約違反が発生しました:EntityReferenceは複数の関連オブジェクトを持つことができますが、クエリは複数の関連オブジェクトを返しました。これは回復不可能なエラーです。
私がどこで間違っているのか考えていますか?