如何在EntityFramework中映射可选的一对一关系

以太网

我有2个模型,Registration和RegistrationCode。一个注册可以具有一个注册码,而一个注册代码可以具有一个注册码。

public class Registration
{
    public Registration()
    {
        RegistrationDate = System.DateTime.Now;
    }
    [Key]
    public int RegistrationID { get; set; }

    [DataType(DataType.DateTime)]
    public DateTime? RegistrationDate { get; set; }


    public RegistrationCode RegistrationCode { get; set; }
}

public class RegistrationCode
{
    [Key]
    public string Code { get; set; }

    public bool IsUsed { get; set; }

    public Registration Registration { get; set; }
}

我试过像这样用Fluent API映射关联:

    modelBuilder.Entity<Registration>()
        .HasOptional(t => t.RegistrationCode)
        .WithOptionalPrincipal();

但是问题是,当我使用update-database重新创建数据库时,我的RegistrationCode表具有以下字段,这表明有些不正确:

Code    nvarchar(50)    Unchecked
IsUsed  bit Unchecked
Registration_RegistrationID int Checked
Registration_RegistrationID1    int Checked

有人可以建议我该怎么做吗?

格特·阿诺德

根据您的代码

modelBuilder.Entity<Registration>()
            .HasOptional(t => t.RegistrationCode)
            .WithOptionalPrincipal();

您告诉EF,有一个主体(Registration),其关联关系不是模型的一部分。除此之外,中还有Registration属性RegistrationCodeEF将其作为第二个外键。解决方法是告诉EF两者相同:

modelBuilder.Entity<Registration>()
            .HasOptional(t => t.RegistrationCode)
            .WithOptionalPrincipal(r => r.Registration);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Hibernate中识别自引用一对一关系的映射侧/拥有侧?

来自分类Dev

如何删除一对一关系中的实体?

来自分类Dev

如何在关系数据库中的一对多关系上定义一对一关系?

来自分类Dev

代码优先的可选一对一关系

来自分类Dev

如何在Python中存储一对一关系表以进行快速查找?

来自分类Dev

如何在Django中从一对一关系反向创建记录?

来自分类Dev

如何在Java中存储一对一关系

来自分类Dev

Rails:如何在Rails中调用一对一关系

来自分类Dev

如何在Entity Framework Core中创建一对一关系?

来自分类Dev

如何在bash中的两个循环之间创建一对一关系?

来自分类Dev

如何在SqlAlchemy中描述来自Django ORM的一对一关系?

来自分类Dev

如何在 Laravel (5.4) Eloquent 中定义单向一对一关系?

来自分类Dev

如何创建一对一关系,双方关系都是可选的

来自分类Dev

学说一对一关系映射

来自分类Dev

流利的API一对一关系映射

来自分类Dev

SQLAlchemy如何使用声明式映射一对一关系的单列

来自分类Dev

ReferentialConstraint中的从属属性被映射为一对一关系的商店生成的列错误

来自分类Dev

一对一关系中的Grails域类映射

来自分类Dev

将 Doctrine 的一对一关系映射为 XML 中的主键

来自分类Dev

如何在EF Core中设计仅指向一个方向的一对一关系

来自分类Dev

如何使用一对一关系关联模型

来自分类Dev

在Swift中以一对一关系插入NSManagedObject

来自分类Dev

模式中建立一对一关系的方法?

来自分类Dev

流中的双向一对一关系

来自分类Dev

EF:一对一关系中的外键?

来自分类Dev

在 Laravel 中显示一对一关系的结果

来自分类Dev

实体框架中的一对一关系插入

来自分类Dev

雄辩的:如何在同一模型上定义一对一关系

来自分类Dev

插入一对一关系

Related 相关文章

  1. 1

    如何在Hibernate中识别自引用一对一关系的映射侧/拥有侧?

  2. 2

    如何删除一对一关系中的实体?

  3. 3

    如何在关系数据库中的一对多关系上定义一对一关系?

  4. 4

    代码优先的可选一对一关系

  5. 5

    如何在Python中存储一对一关系表以进行快速查找?

  6. 6

    如何在Django中从一对一关系反向创建记录?

  7. 7

    如何在Java中存储一对一关系

  8. 8

    Rails:如何在Rails中调用一对一关系

  9. 9

    如何在Entity Framework Core中创建一对一关系?

  10. 10

    如何在bash中的两个循环之间创建一对一关系?

  11. 11

    如何在SqlAlchemy中描述来自Django ORM的一对一关系?

  12. 12

    如何在 Laravel (5.4) Eloquent 中定义单向一对一关系?

  13. 13

    如何创建一对一关系,双方关系都是可选的

  14. 14

    学说一对一关系映射

  15. 15

    流利的API一对一关系映射

  16. 16

    SQLAlchemy如何使用声明式映射一对一关系的单列

  17. 17

    ReferentialConstraint中的从属属性被映射为一对一关系的商店生成的列错误

  18. 18

    一对一关系中的Grails域类映射

  19. 19

    将 Doctrine 的一对一关系映射为 XML 中的主键

  20. 20

    如何在EF Core中设计仅指向一个方向的一对一关系

  21. 21

    如何使用一对一关系关联模型

  22. 22

    在Swift中以一对一关系插入NSManagedObject

  23. 23

    模式中建立一对一关系的方法?

  24. 24

    流中的双向一对一关系

  25. 25

    EF:一对一关系中的外键?

  26. 26

    在 Laravel 中显示一对一关系的结果

  27. 27

    实体框架中的一对一关系插入

  28. 28

    雄辩的:如何在同一模型上定义一对一关系

  29. 29

    插入一对一关系

热门标签

归档