MyTetra Share
Делитесь знаниями!
Расширение SQLite-Net как один к одному, так и один ко многим отношения между двумя сущностями
Время создания: 30.08.2020 12:09
Текстовые метки: SQLite, расширения SQLite, связи таблиц SQLIte
Раздел: Компьютер - C# - SQLite
Запись: Kozlov-AE/Tetra/master/base/15987785673ey77l4bsf/text.html на raw.githubusercontent.com

Вы должны явно объявить внешние ключи и обратные свойства в атрибуте отношения, потому что в противном случае библиотека может получить неправильный внешний ключ для отношения.

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; }

}


Обратите внимание, что внешний ключ O2OClassAKey для OneToOne Отношения могут быть объявлены в любом из классов.

Если вам не нужны обратные свойства, вы можете пропустить их в атрибуте отношений:

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; }

}

Так же в этом разделе:
 
MyTetra Share v.0.55
Яндекс индекс цитирования