2009-10-07 169 views
0

的元件I具有至極含有3 兒童對象數組(兒童[] ChildArray)。 我有一個數據庫表MyTable的與字段[FLD_01][FLD_02][FLD_03]。 我如何[FLD_01]映射到ChildArray [0][FLD_02]ChildArray [1]等?映射到一個數組

+0

@npeBeg:想知道:你是否知道RDMBS中的一對多關係? – 2009-10-07 14:30:11

+0

可惜我不能改變數據庫的結構,所以我可以做的唯一的事情就是進行這種「直腸病的方法,」儘管我哭,每次我期待到DB:'( – npeBeg 2009-10-08 06:39:55

回答

0

我想解決這樣的:

class Parent 
{ 

    public Parent() 
    { 
    Children = new Child[3]; 
    } 

    public Child[] Children { get; private set; } 

    private Child1 { get { return Child[0]; } set { Child[0] = value; } } 
    private Child2 { get { return Child[1]; } set { Child[1] = value; } } 
    private Child3 { get { return Child[2]; } set { Child[2] = value; } } 
} 

的容易將它映射爲單獨的性質。

<property name="Child1" /> 
<property name="Child2" /> 
<property name="Child3" /> 

也許最好的解決辦法是隻把它映射到另一個表。

<array table="Children"> 
    <key name="Parent_FK"/> 
    <index name="array_index"/> 
    <composite-element> 
    <property name="Foo"/> 
    <property name="Bar"/> 
    </composite-element> 
</array> 
+0

這將是很好,如果我只有3個個子項..但有10個,每個子項包含5場.. 還有沒有其他的解決辦法嗎? – npeBeg 2009-10-07 13:33:07

+0

你總是需要指定所有你在你的映射文件數據庫中有列。如果有10次以相同的5場,你需要映射50列,周圍也沒有辦法。如果你想避免它,避免這個50列和整個東西映射到另一個表。 – 2009-10-07 14:24:08