DevExpress XPO упаковывает существующие таблицы отношений - PullRequest
0 голосов
/ 31 мая 2011

Я экспериментирую с XPO и пытаюсь обернуть некоторые существующие таблицы. У кого-нибудь есть опыт в этом? Проблема, с которой я сталкиваюсь, заключается в определении того, как XPO определяет имена связывающих полей для отношений.

Например, у меня есть две таблицы,

Торговец (MerchantID, ProcessorID и т. Д.), Соединяющий 1 к 1 с процессором

Процессор (ProcessorID и т. Д.), Связывающий 1 со многими с Merchant

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 говорится, что вышесказанное должно работать, но это не так.

Любая помощь?

Ответы [ 2 ]

0 голосов
/ 02 июля 2012

PersistentAttribute может использоваться как для отображения классов в таблицы, так и для отображения свойств в столбцы.

Если вы пропустите это, имя таблицы / столбца будет таким же, как имя класса / свойства, и таблица / столбец будет создан, если отсутствует. Вот что случилось с твоей первой попытки.

http://documentation.devexpress.com/#XPO/clsDevExpressXpoPersistentAttributetopic

0 голосов
/ 31 мая 2011

После экспериментов с другим синтаксисом я обнаружил, что, если я добавлю следующее в класс Merchant, оно будет работать:

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