2012-04-26 76 views
0

我有一个基于4.3.1的代码优先的EF模型。实体框架中奇怪的ZeroOrOne外键异常4.3.1

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

在我的实体类,我可以看到,这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空一个新的事件,我的应用程序将引发对这个外键异常关系。这是一个EF错误还是应该检查一些其他的东西?

在此先感谢。

回答

0

我想通了什么问题是,模型中出现了错误,导致属性不能生成。不知何故,“引用约束”是空的,所以我删除并重读了关联,现在它可以工作。

0

我认为这不是ZeroOrOne关系,而是ZeroToMany。 这将是有益宥可以给我们您的实体和流利的映射的视图(如果有的话)

可以使用流利的映射尝试这样的事:

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