SQLite-Net Extension两个实体之间的一对一关系和一对多关系

木瓜

我正在使用SQLite-Net PCL和SQLite-Net扩展来使用Xamarin开发应用程序。

在我的模型中,我有两个实体,我们分别称为A和B,它们通过一对一和一对多的关系相连。例如,A与B具有一对一的关系,A与B也具有一对多的关系。

是否可以使用SQLite-Net扩展来表达这种行为?

redent84

是的,但是您必须在Relationship属性中显式声明外键和逆属性,因为否则库可能会为该关系获取错误的外键。

    public class ClassA
    {
        [PrimaryKey, AutoIncrement]
        public int Id { get; set; }

        [OneToMany("O2MClassAKey", "BObjectsInverse")]
        public List<ClassB> BObjects { get; set; }

        [OneToOne("O2OClassAKey", "BObjectInverse")]
        public ClassB BObject { get; set; }

        // Other properties
        public string Bar { get; set; }
    }
        
    public class ClassB
    {
        [PrimaryKey, AutoIncrement]
        public int Id { get; set; }

        [ForeignKey(typeof (ClassA))]
        public int O2MClassAKey { get; set; }

        [ForeignKey(typeof (ClassA))]
        public int O2OClassAKey { get; set; }

        // Inverse relationships, these are optional
        [ManyToOne("O2MClassAKey", "BObjects")]
        public ClassA BObjectsInverse { get; set; }
        [OneToOne("O2OClassAKey", "BObject")]
        public ClassA BObjectInverse { get; set; }

        // Other properties
        public string Foo { get; set; }
    }

请注意,可以在任何类中声明O2OClassAKeyOneToOne关系的外键

如果不需要逆属性,则可以在Relationship属性中跳过它们:

    public class ClassA
    {
        [PrimaryKey, AutoIncrement]
        public int Id { get; set; }

        [OneToMany("O2MClassAKey")]
        public List<ClassB> BObjects { get; set; }

        [OneToOne("O2OClassAKey")]
        public ClassB BObject { get; set; }

        // Other properties
        public string Bar { get; set; }
    }
        
    public class ClassB
    {
        [PrimaryKey, AutoIncrement]
        public int Id { get; set; }

        [ForeignKey(typeof (ClassA))]
        public int O2MClassAKey { get; set; }

        [ForeignKey(typeof (ClassA))]
        public int O2OClassAKey { get; set; }

        // Other properties
        public string Foo { get; set; }
    }

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLite表之间的一对多关系

来自分类Dev

种子一对一关系 ASP .NET MVC

来自分类Dev

实体框架与ASP.NET Boilerplate的一对一关系

来自分类Dev

实体框架与ASP.NET Boilerplate的一对一关系

来自分类Dev

Android-SQLite。一对多关系

来自分类Dev

Android-SQLite。一对多关系

来自分类Dev

UWP Sqlite一对多关系

来自分类Dev

如何更改与自己的实体框架7(ASP.NET Core)一对一关系创建的记录?

来自分类Dev

.NET实体框架核心一对多关系

来自分类Dev

在ASP.NET C#应用程序的GridView中一对一关系

来自分类Dev

学说–如何在两个实体之间建立一对一关系

来自分类Dev

ASP.NET MVC是一对多关系合法的从属类中的两个外国字段

来自分类Dev

SQLite一对多关系设置/获取外键

来自分类Dev

用于RecipeApp的SQLite数据库(一对多关系)

来自分类Dev

JPA:如何保存具有一对一关系的两个实体?

来自分类Dev

asp.net core webapi中的一对多关系

来自分类Dev

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

来自分类Dev

无法在实体之间建立一对一关系

来自分类Dev

雄辩的一对一关系和两个自定义字段

来自分类Dev

雄辩的一对一关系和两个自定义字段

来自分类Dev

SQL根据两个原始列之间的一对一或一对多关系创建新列

来自分类Dev

ASP.NET Core 3.1和Entity Framework Core:一对多关系

来自分类Dev

Laravel:belongsTo()关系假定一对多关系,而不是一对一关系

来自分类Dev

ASP.NET 3.1 Web API,实体框架一对多关系未建立或以周期结束

来自分类Dev

多表继承模型与相同两个模型之间简单的一对一关系有什么区别?

来自分类Dev

Django中两个模型(字段)与当前模型的一对一关系

来自分类Dev

使用两个原理表在SQL Server中实现一对一关系

来自分类Dev

如何使用Hibernate保存具有一对一关系的两个类?

来自分类Dev

插入到一对一关系中的两个表中

Related 相关文章

  1. 1

    SQLite表之间的一对多关系

  2. 2

    种子一对一关系 ASP .NET MVC

  3. 3

    实体框架与ASP.NET Boilerplate的一对一关系

  4. 4

    实体框架与ASP.NET Boilerplate的一对一关系

  5. 5

    Android-SQLite。一对多关系

  6. 6

    Android-SQLite。一对多关系

  7. 7

    UWP Sqlite一对多关系

  8. 8

    如何更改与自己的实体框架7(ASP.NET Core)一对一关系创建的记录?

  9. 9

    .NET实体框架核心一对多关系

  10. 10

    在ASP.NET C#应用程序的GridView中一对一关系

  11. 11

    学说–如何在两个实体之间建立一对一关系

  12. 12

    ASP.NET MVC是一对多关系合法的从属类中的两个外国字段

  13. 13

    SQLite一对多关系设置/获取外键

  14. 14

    用于RecipeApp的SQLite数据库(一对多关系)

  15. 15

    JPA:如何保存具有一对一关系的两个实体?

  16. 16

    asp.net core webapi中的一对多关系

  17. 17

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

  18. 18

    无法在实体之间建立一对一关系

  19. 19

    雄辩的一对一关系和两个自定义字段

  20. 20

    雄辩的一对一关系和两个自定义字段

  21. 21

    SQL根据两个原始列之间的一对一或一对多关系创建新列

  22. 22

    ASP.NET Core 3.1和Entity Framework Core:一对多关系

  23. 23

    Laravel:belongsTo()关系假定一对多关系,而不是一对一关系

  24. 24

    ASP.NET 3.1 Web API,实体框架一对多关系未建立或以周期结束

  25. 25

    多表继承模型与相同两个模型之间简单的一对一关系有什么区别?

  26. 26

    Django中两个模型(字段)与当前模型的一对一关系

  27. 27

    使用两个原理表在SQL Server中实现一对一关系

  28. 28

    如何使用Hibernate保存具有一对一关系的两个类?

  29. 29

    插入到一对一关系中的两个表中

热门标签

归档