Работа над приложением с использованием SQLite-net-pcl и SQLiteNetExtensions, и у меня возникла проблема с получением данных из дочерней таблицы с использованием каскадного и рекурсивного. Я искал вокруг SO, но ни одно из предложений не работает. Любое понимание будет оценено.
Ниже приведены мои методы для таблиц:
using SQLite;
using SQLiteNetExtensions.Attributes;
using System;
using System.Collections.ObjectModel;
namespace ACNLTracker
{
public class Daily
{
[PrimaryKey]
public DateTime Date { get; set; }
//Other data that doesn't pertain to this question
[OneToMany(CascadeOperations = CascadeOperation.All)]
public ObservableCollection<Resident> Residents { get; set; }
}
[Table("residents")]
public class Resident
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public int ResidentID { get; set; }
[ForeignKey(typeof(Villager))]
public int VillagerID { get; set; }
[ForeignKey(typeof(Daily))]
public DateTime DailyDate { get; set; }
[OneToOne(CascadeOperations = CascadeOperation.CascadeRead, ReadOnly = true)]
public Villager Villager { get; set; }
}
[Table("Villagers")]
public class Villager
{
[PrimaryKey]
public int ID { get; set; }
public string Name { get; set; }
public string Species { get; set; }
public int Gender { get; set; }
public string Birthday { get; set; }
public string Image { get; set; }
}
}
У меня есть метод базы данных в App.XAML, который устанавливает данные. У меня есть пара звонков, чтобы получить данные
public Daily GetToday() => db.GetAllWithChildren<Daily>(recursive: true).Where(x => x.Date == DateTime.Today).FirstOrDefault();
public ObservableCollection<Resident> GetResidents() => db.GetAllWithChildren<Resident>(recursive: true).ToObservableCollection();
Если я позвоню
Daily daily = App.Database.GetToday();
Я получаю все данные за сегодня и данные о жителях, но сельский житель при резиденте остается нулевым.
Resident[] resident = App.Database.GetResidents();
Возвращает всех жителей, и таблица сельчан не является нулевой. Разве невозможно получить дочерние таблицы, используя этот метод?