是否有用于检索父对象的内置方法

本文关键字:内置 方法 对象 用于 检索 是否 | 更新日期: 2023-09-27 18:34:52

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

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

是否有用于检索父对象的内置方法

你应该有一个这样的属性:

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

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