我正在使用带有 EF Code First 的现有数据库并使用 modelBuilder 进行配置。我有两个表,其中一个会话可以有一个主题,类是这样的:
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 不能有多个相关对象,但查询返回了多个相关对象。这是一个不可恢复的错误。
知道我哪里出错了吗?