Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架4.3.1中奇怪的ZeroRoOne外键异常_C#_.net_Sql Server_Entity Framework_Ef Code First - Fatal编程技术网

C# 实体框架4.3.1中奇怪的ZeroRoOne外键异常

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

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

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

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


提前谢谢。

我认为这不是零对一关系,而是零对多关系。 yuo能给我们一个实体视图和流畅的映射(如果你有)会很有帮助

您可以使用fluent mapping尝试以下操作:

modelBuilder.Entity<Event>()
            .HasOptional(e => e.Session)
            .WithMany();
modelBuilder.Entity()
.has可选(e=>e.Session)
.有许多();

我发现了问题所在,模型中存在一些错误,导致无法生成属性。不知何故,“引用约束”是空的,所以我删除并读取了关联,现在它可以工作了