我的关系很简单,我的模型如下所示:
public class Project
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
[ForeignKey(typeof(User))]
public int ProjectManagerID { get; set; }
[ManyToOne]
public User ProjectManager { get; set; }
}
public class User
{
public string Login { get; set; }
[OneToMany]
public List<Project> Projects { get; set; }
}
问题是我可以很容易地保存项目,它对用户的引用而不保存用户,而且我没有得到任何违反约束的异常。
database.Insert(new Project
{
Name = "aaa",
ProjectManagerID = 8
});
我什至可以使用无效的用户 ID 查询我的项目,但我在用户表中没有存储任何记录。另一个有趣的事情是,当我打开这个数据库时,我无法在我的 SQLite 管理工具中存储像上面那样的行,所以我确信我的数据库模式是好的。
这在带有 sqlite-net-extensions 的 sqlite-net PCL 库中是否正常?
更新:我的 sqlite 版本是 3.8.7.4