В проекте Xamarin с использованием расширений SQLite-Net у меня есть два объекта: Project и ProjectSettings. Эти организации имеют взаимно-однозначные отношения. Объект проекта имеет идентификатор автоинкремента. Когда я сначала сохраняю проект, идентификатор проекта автоматически устанавливается. Это работает нормально.Автоматически назначать сущность в отношениях «один-к-одному» с расширениями SQLite-Net
public class Project
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[OneToOne(CascadeOperations = CascadeOperation.All)]
public ProjectSettings Settings { get; set; }
}
Для ProjectSettings, я бы ожидать, что ProjectID такая же, как Id в таблице Project (ForeignKey).
public class ProjectSettings
{
[PrimaryKey, ForeignKey(typeof(Project))]
public int ProjectId { get; set; }
}
Однако ProjectID в таблице ProjectSettings составляет 0 после сохранения проекта. Я сохраняю проект, используя database.InsertOrReplaceWithChildren(project)
. Project и ProjectSettings имеют оба значения Id = 0 при вызове этого метода.
Как я совершенно новичок в SQLite-Net, мне интересно, неправильно ли я использую аннотации или если необходимы ручные шаги, чтобы правильно установить ключ ProjectSettings?