2012-05-16 50 views
0

我正在使用ORM that uses POCOs用數據庫內容遞歸填充樹

每個表(類)都包含對其他表的引用。

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

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

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

我多麼填充表3的樹,解開被引用的表2和表1隨後進入子樹?

感謝所有的建議

+0

剛剛意識到C#不具有數據結構我想當然內置的。幸運的是[C5](https://github.com/sestoft/C5/)增加了這麼多需要的功能集。 –

回答

0

可能是這樣呢?

var root = new {TopLevelNodes = Table3.Select(t3=> new {Id = t3.Table2_id, SubLevel = t3.FieldA.Select(t2=>new {t2.FieldA})})}; 
+0

嗯,這可能是,謝謝。雖然你可以通過它說話嗎? - 例如:嵌套列表還是實際的樹? –

+0

是的,LINQ加上匿名的課程,我沒有看到完整的畫面你會完成,但你可能根本不需要它,你的課程已經以你想要的方式相關。 –