0

我有一个基于 4.3.1 的代码优先 EF 模型。

在此模型中,两个表之间存在 ZeroOrOne 关系:Session 和 Event。一个 Event 可以只有一个 Session,但也有一些没有 Session 的事件(如一般启动事件)。许多事件可以共享理智的会话。

在我的实体类中,我可以看到这个 FK 关系被映射:

[assembly: EdmRelationshipAttribute("MyModel", "fk_event_session", "Session", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(Data.Session), "Event", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(Data.Event), true)]

但是,当我尝试添加 SessionID 为 null 的新事件时,我的应用程序会在此关系上引发外键异常。这是一个 EF 错误还是我应该检查其他一些事情?

提前致谢。

4

2 回答 2

0

我认为这不是 ZeroOrOne 关系,而是 ZeroToMany。yuo 可以帮助我们了解您的实体和流畅的映射(如果您有的话)

您可以通过使用流利的映射尝试这样的事情:

modelBuilder.Entity<Event>()
            .HasOptional(e => e.Session)
            .WithMany();
于 2012-04-27T12:52:46.880 回答
0

我弄清楚了问题所在,模型中有问题导致无法生成属性。不知何故,“参考约束”是空的,所以我删除并读取了关联,现在它可以工作了。

于 2012-05-03T09:10:47.713 回答