C# 实体框架4.3.1中奇怪的ZeroRoOne外键异常
我有一个基于4.3.1的代码优先EF模型 在这个模型中,两个表之间有一个ZeroOrOne关系:Session和Event。 一个事件可以只有一个会话,但也有一些事件(如常规启动事件)没有会话。许多事件可以共享sane会话 在我的Entities类中,我可以看到此FK关系已映射:C# 实体框架4.3.1中奇怪的ZeroRoOne外键异常,c#,.net,sql-server,entity-framework,ef-code-first,C#,.net,Sql Server,Entity Framework,Ef Code First,我有一个基于4.3.1的代码优先EF模型 在这个模型中,两个表之间有一个ZeroOrOne关系:Session和Event。 一个事件可以只有一个会话,但也有一些事件(如常规启动事件)没有会话。许多事件可以共享sane会话 在我的Entities类中,我可以看到此FK关系已映射: [assembly: EdmRelationshipAttribute("MyModel", "fk_event_session", "Session", System.Data.Metadata.Edm.Relati
[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错误还是我应该检查其他一些东西
提前谢谢。我认为这不是零对一关系,而是零对多关系。 yuo能给我们一个实体视图和流畅的映射(如果你有)会很有帮助 您可以使用fluent mapping尝试以下操作:
modelBuilder.Entity<Event>()
.HasOptional(e => e.Session)
.WithMany();
modelBuilder.Entity()
.has可选(e=>e.Session)
.有许多();
我发现了问题所在,模型中存在一些错误,导致无法生成属性。不知何故,“引用约束”是空的,所以我删除并读取了关联,现在它可以工作了