Связи и каскадное удаление в SQLite-net

Я практикуюсь в создании мобильных приложений на Xamarin с локальной базой данных SQLite. Я создал две простенькие сущности хотелось бы наладить между ними связь и каскадное удаление. Каскадное удаление по итогу не работает как и связь по всей видимости. Полагаю беда еще в том что в список сотрудников у профессии не сохраняются почему то объекты класса Person. Возможна ли вообще налаживание связей таким образом на SQLite-net?

Используется библиотека SQLite-net, не путать с Entity Framework.

Вот я описал две сущности проставил атрибуты для связи и каскадного удаления

public class Person
{
    [PrimaryKey, AutoIncrement,NotNull]
    public int Id { get; set; }
    [NotNull]
    public string Fullname { get; set; }
    [ForeignKey(typeof(Job))]
    public int Idjob { get; set; }

    [ManyToOne(CascadeOperations = CascadeOperation.CascadeRead)]
    public Job Jobb { get; set; }

    public string job
    {
        get
        {
            string s = App.HRDB.GetJobAsync().Result.ToArray().Where(p => p.Id == Idjob).FirstOrDefault().Name;
            if (s == "")
                return "";
            return s;
        }
    }
}

Вот в этом методе я сохраняю нового сотрудника и записываю его в лист сотрудников в сущности job

private async void Save_Clicked(object sender, EventArgs e)
{
    Person person = (Person)BindingContext;
    if (person == null)
        person = new Person() { Fullname = Fullname.Text };
    Job job = jobs.Where(p => p.Name == CB.Items[CB.SelectedIndex]).FirstOrDefault();
    person.Idjob = job.Id;
    person.Jobb = job;
    if (job.people == null)
        job.people = new List<Person>();
    job.people.Add(person);

    if (!string.IsNullOrWhiteSpace(person.Fullname) && !string.IsNullOrWhiteSpace(person.Idjob.ToString()))
    {
        await App.HRDB.SavePersonAsync(person);
        await App.HRDB.SaveJobAsync(job);
    }
    //Две точки что бы назад вернуться
    await Shell.Current.GoToAsync("..");
}

Тут я сохраняю/обновляю сущность Job

public Task<int> SaveJobAsync(Job job)
{
    if (job.Id == 0)
        return db.InsertAsync(job);
    return db.UpdateAsync(job);
}

Далее при загружая профессию из бд, лист сотрудников в нем оказывается всегда null.


Ответы (0 шт):