我在ORMLite中有两个(简化的)类(使用SQLite提供程序,但无关紧要):
public class ParentClass
{
[AutoIncrement]
public long Id { get; set; }
[Required]
[Index(Unique = true)]
public String Name { get; set; }
[Reference]
public List<ChildClass> Children { get; set; }
}
public class ChildClass
{
[AutoIncrement]
public long Id { get; set; }
[Required]
[Index(Unique = true)]
public String Name { get; set; }
[Required]
public long ParentId { get; set; }
}
当我有父母时,我可以做到
var firstChild = parent.Children.First();
或类似直接检索子类。但是当我需要反过来时,我需要做
var parent = db.Single<ParentClass>(new { Id = child.ParentId });
有没有办法设置数据类,所以我可以简单地执行以下操作?
var parent = child.Parent;
最佳解决方案是只能从数据库中检索父级一次(注意:我在单用户环境中,没有人/没有在外部修改我的数据库)。
答案 0 :(得分:1)
您应该拥有以下属性:
[Reference]
public ParentClass Parent { get; set; }
在ChildClass
上,然后您需要确保该属性已正确填写。您在数据库中的子表上有ParentId
属性,因此,根据其ID获取父项不应该有任何问题 - 我想。