是否有内置的方法来检索父对象?

时间:2014-12-22 11:57:56

标签: c# .net ormlite-servicestack

我在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;

最佳解决方案是只能从数据库中检索父级一次(注意:我在单用户环境中,没有人/没有在外部修改我的数据库)。

1 个答案:

答案 0 :(得分:1)

您应该拥有以下属性:

[Reference]
public ParentClass Parent { get; set; }
ChildClass

,然后您需要确保该属性已正确填写。您在数据库中的子表上有ParentId属性,因此,根据其ID获取父项不应该有任何问题 - 我想。