Я работаю над иерархией модели, используя SQLite и расширения SQLite-Net. Структура модели состоит из трех уровней: RootModel, LevelOneModel и LevelTwoModel. Каждая модель содержит свойства, которые устанавливают отношения со следующим уровнем, а именно:
RootModel имеет связь «один ко многим» с LevelOneModel.
LevelOneModel имеет связь «один ко многим». связь с LevelTwoModel.
Вот моя реализация:
public class RootModel
{
[PrimaryKey, AutoIncrement]
public Guid Id { get; set; }
public string? Name { get; set; }
[OneToMany(CascadeOperations = CascadeOperation.All)]
public List LevelOneModels { get; set; }
}
public class LevelOneModel
{
[PrimaryKey, AutoIncrement]
public Guid Id { get; set; }
public string? Name { get; set; }
[ForeignKey(typeof(RootModel))]
public Guid RootModelId { get; set; }
[ManyToOne]
public RootModel RootModel { get; set; }
[OneToMany(CascadeOperations = CascadeOperation.All)]
public List LevelTwoModels { get; set; }
}
public class LevelTwoModel
{
[PrimaryKey, AutoIncrement]
public Guid Id { get; set; }
public string? Name { get; set; }
[ForeignKey(typeof(LevelOneModel))]
public Guid LevelOneModelId { get; set; }
[ManyToOne]
public LevelOneModel LevelOneModel { get; set; }
}
Я использую методы InsertWithChildren и GetWithChildren расширений SQLite-Net для манипулирования данными. Хотя отношения между RootModel и LevelOneModel работают должным образом, свойство LevelTwoModels в LevelOneModel всегда возвращает значение NULL при получении.
Что может быть причиной этой проблемы и как ее решить, чтобы обеспечить все связи правильно обрабатываются и извлекаются?
Все три таблицы созданы.
Для вставки:
await SqliteDataStore.Instance.Database.InsertWithChildrenAsync(Data);
Для получения:
return await SqliteDataStore.Instance.Database.GetAllWithChildrenAsync();
Подробнее здесь: https://stackoverflow.com/questions/792 ... leveltwomo
Проблема с вложенными отношениями «один ко многим» в расширениях SQLite-Net: свойство LevelTwoModels возвращает значение ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
База данных комнат возвращает значение null с вложенными отношениями и левым соединением
Anonymous » » в форуме Android - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-