具有嵌套选择查询的OrmLite

时间:2012-05-14 14:20:00

标签: c# crud servicestack ormlite-servicestack

我已将我的问题概括为一般,以迎合有相同问题的人数最多。

public class Table1 {
    [AutoIncrement]
    public Int32 Id { get; set; }
    [Index(Unique = true)]
    public string FieldA { get; set; }
    public string FieldB { get; set; }
    public string FieldC { get; set; }
}

public Table2 {
    [AutoIncrement]
    public Int32 Id { get; set; }
    [Index(Unique = true)]
    public Table1 FieldA { get; set; }
    public DateTime FieldB { get; set; }
    public int FieldC { get; set; }
}

public Table3 {
    [AutoIncrement]
    public Int32 Id { get; set; }
    [Index(Unique = true)]
    public List<Table2> FieldA { get; set; }
    public List<Table1> FieldB { get; set; }
}

public Table4 {
    [AutoIncrement]
    public Int32 Id { get; set; }
    [Index(Unique = true)]
    public int FieldA { get; set; }
    [References(typeof(Table3))]
    public int Table3_id { get; set; }
    [References(typeof(Table2))]
    public int Table2_id { get; set; }
}

如何填充包含Table4完整信息的List I.e。:包括其引用表的每个字段的值 - 以及这些表的引用表

我也会对如何创建单个CRUD表单感兴趣 - 来自JSON序列化 - 它可以创建一个全新的Table4条目,嵌套表3,表2和表1的CRUD表单。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

要从1个查询中的多个表中读取,您需要使用映射到与返回的结果集匹配的Merged Poco的SQL JOIN,请参阅此答案中的Shipper示例:

https://stackoverflow.com/a/8617860/85785