【问题标题】:PetaPoco to return self-referencing hierarchyPetaPoco 返回自引用层次结构
【发布时间】:2011-08-25 21:54:57
【问题描述】:

如何编写查询/方法来返回来自自引用数据库的 POCO,如 question 所示

【问题讨论】:

    标签: petapoco


    【解决方案1】:

    首先,您将其映射为平面类。例如。 db.Fetch<CategoryDb>("select * from categories");

    public class CategoryDb {
        public int Id { get; set; } 
        public string Name { get; set; }
        public int ParentCategoryId { get; set; }
    }
    

    然后我将创建一个自引用自身的新对象。 (您可以将现有对象与具有 [Result] 属性的 ParentCategory 一起使用。)

    public class Category {
        public int Id { get; set; } 
        public string Name { get; set; }
        public Category ParentCategory { get; set; }
    }
    

    然后您可以使用它并将您的平面列表转换为嵌套列表。 我在某处确实有可以执行此操作的代码,并且它还提供了搜索方法等,但它不在这台计算机上。明天我会更新代码链接。

    【讨论】:

    • 按照您的建议完成,这似乎可行。有兴趣看看你想出什么: var steps = stepRepo.GetAll().ToList(); var parents = steps.Where(x => x.ParentID == 0).ToList(); parents.ForEach(x => x.Children = steps.Where(y => y.ParentID == x.ID));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    相关资源
    最近更新 更多