在使用 SQLite-Net 扩展的 Xamarin 项目中,我有两个实体:Project 和 ProjectSettings。这些实体具有一对一的关系。Project 实体有一个自动递增的 Id。当我最初保存项目时,会自动设置项目的 ID。这工作正常。
public class Project
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[OneToOne(CascadeOperations = CascadeOperation.All)]
public ProjectSettings Settings { get; set; }
}
对于 ProjectSettings,我希望 ProjectId 与 Project 表中的 Id (ForeignKey) 相同。
public class ProjectSettings
{
[PrimaryKey, ForeignKey(typeof(Project))]
public int ProjectId { get; set; }
}
但是,持久化项目后,ProjectSettings 表中的 ProjectID 为 0。我正在使用database.InsertOrReplaceWithChildren(project)
. 调用此方法时,Project 和 ProjectSettings 的 Id=0。
由于我对 SQLite-Net 很陌生,我想知道我是否错误地使用了注释,或者是否需要手动步骤才能正确设置 ProjectSettings 的键?