0

XPOを試し、既存のテーブルをラップしようとしています。誰かがこれを行った経験がありますか?私が直面している問題は、XPOが関係のリンクフィールドの名前をどのように決定するかを決定することです。

たとえば、2つのテーブルがあります。

1対1でプロセッサをリンクしているMerchant(MerchantID、ProcessorIDなど)

マーチャントと1対多をリンクするプロセッサー(ProcessorIDなど...)

DevExpressは、関係を次のように設定すると言います。

public class Merchant : XPLiteObject
{
    [Association("Processor-Merchants")]
    public Processor Processor;
}

public class Processor : XPLiteObject
{
    [Association("Processor-Merchants", typeof(Merchant))]
    public XPCollection Merchants {
        get { return GetCollection("Merchants"); }
    }
}

しかし、私の質問は、XPOは、これらの関係をリンクする主要なフィールドがどれであるかをどのように知るのかということです。この例は、XAPアプリケーションでコンパイルおよび実行されますが、各関係のデータが欠落しています(おそらく、どのフィールドがテーブルをリンクしているのかがわからないためです)。

これらの関係を確立するために追加する必要がある、欠落している構文はありますか?または、追加のコードが必要ですか?DevExpressのドキュメントには、上記は機能するはずだと書かれていますが、機能しません。

何か助けはありますか?

4

2 に答える 2

0

さまざまな構文を試した後、Merchant クラスに以下を追加すると機能することがわかりました。

public class Merchant : XPLiteObject
{
    [Persistent("ProcessorID")]
    [Association("Processor-Merchants")]
    public Processor Processor;
}
于 2011-05-31T15:29:41.743 に答える
0

PersistentAttribute は、クラスをテーブルにマッピングする場合と、プロパティを列にマッピングする場合の両方に使用できます。

省略した場合、table-/columnname は class-/propertyname と同じになり、欠落している場合は table/column が作成されます。それがあなたの最初の試みで起こったことです。

http://documentation.devexpress.com/#XPO/clsDevExpressXpoPersistentAttributeトピック

于 2012-07-02T11:49:49.833 に答える