实体框架4.3.1中的奇怪零或外键异常

时间:2012-04-26 12:00:28

标签: c# .net sql-server entity-framework ef-code-first

我有一个基于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错误还是我应该检查一些其他的东西?

提前致谢。

2 个答案:

答案 0 :(得分:0)

我认为这不是ZeroOrOne关系,而是ZeroToMany。 这将是有帮助的,你可以给我们一个你的实体和流畅的映射(如果你有)的视图

你可以通过使用流畅的映射来尝试这样的事情:

modelBuilder.Entity<Event>()
            .HasOptional(e => e.Session)
            .WithMany();

答案 1 :(得分:0)

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