【问题标题】:Strange ZeroOrOne Foreign Key Exception in Entity Framework 4.3.1Entity Framework 4.3.1 中奇怪的 ZeroOrOne 外键异常
【发布时间】:2012-04-26 12:00:27
【问题描述】:

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

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

在我的实体类中,我可以看到这个 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 错误还是我应该检查其他一些事情?

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    我认为这不是 ZeroOrOne 关系,而是 ZeroToMany。 如果您可以让我们了解您的实体和流畅的映射(如果有的话),将会很有帮助

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

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

    【讨论】:

      【解决方案2】:

      我发现问题出在哪里,模型中有问题导致无法生成属性。不知何故,“参考约束”是空的,所以我删除并读取了关联,现在它可以工作了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-16
        • 2011-10-29
        • 1970-01-01
        • 2015-01-03
        • 1970-01-01
        • 2018-08-19
        相关资源
        最近更新 更多