我有一个基于4.3.1的代码优先EF模型。
在这个模型中,两个表之间存在ZeroOrOne关系:Session和Event。 一个事件可以只有一个Session,但也有没有Session的事件(如一般启动事件)。许多活动可以分享理智的会话。
在我的Entities类中,我可以看到映射了这个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错误还是我应该检查一些其他的东西?
提前致谢。
答案 0 :(得分:0)
我认为这不是ZeroOrOne关系,而是ZeroToMany。 这将是有帮助的,你可以给我们一个你的实体和流畅的映射(如果你有)的视图
你可以通过使用流畅的映射来尝试这样的事情:
modelBuilder.Entity<Event>()
.HasOptional(e => e.Session)
.WithMany();
答案 1 :(得分:0)
我弄清楚问题是什么,模型中出现了一些错误,导致无法生成属性。不知何故,“参照约束”是空的,所以我删除并读取了关联,现在它可以工作。