В проекте Xamarin с использованием расширений SQLite-Net у меня есть две сущности: Project и ProjectSettings. Эти сущности имеют отношение один к одному. Сущность Project имеет автоматически увеличивающийся идентификатор. Когда я изначально сохраняю проект, идентификатор проекта устанавливается автоматически. Это работает нормально.
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 имеют идентификатор = 0 при вызове этого метода.
Поскольку я новичок в SQLite-Net, мне интересно, неправильно ли я использую аннотации или необходимы ручные шаги для правильной установки ключа ProjectSettings?