我刚刚在我的项目中更新了所有SQLite块包。所有数据库操作都运行得很好。
现在,当我尝试这个时: items = db.GetAllWithChildren();
我收到此错误: Item.ItemEvents:OneToMany关系来源必须具有主键
因此代码中没有任何变化,主键是GUID作为字符串 所有实体都从这样的基类继承:
public class BusinessEntityBase : IBusinessEntity
{
public BusinessEntityBase()
{
Id = Guid.NewGuid().ToString();
}
[PrimaryKey]
public string Id { get; set; }
}
这个错误是否意味着我不能/不应该从实现Id属性的基类继承?每个类应该实现它自己的Id属性吗?
我只是问,因为所有这些属性/关系都是通过反思来解决的,而且可能已经改变了一些东西以否定我如何构建我的实体层......
我不知道为什么我现在得到这个,而不是在更新所有SQLite插件之前......
答案 0 :(得分:0)
为需要知道的人找到了问题。
实体属性在SQLite和SQLite.Net.Attributes命名空间中不明确。
属性需要以SQLite名称空间为前缀,即:[SQLite.PrimaryKey]
希望有所帮助...