【问题标题】:DevExpress XPO wrapping existing table relationships包装现有表关系的 DevExpress XPO
【发布时间】:2011-05-31 15:12:40
【问题描述】:

我正在试验 XPO 并尝试包装一些现有的表。有没有人有这样做的经验?我遇到的问题是确定 XPO 如何确定关系的链接字段的名称。

例如,我有两个表,

Merchant(MerchantID, ProcessorID, etc...) 将 1 到 1 与处理器链接

Processor(ProcessorID, etc...) 将 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 文档说上面的方法应该有效,但它没有。

有什么帮助吗?

【问题讨论】:

    标签: mapping devexpress xpo


    【解决方案1】:

    在尝试了不同的语法后,我发现如果我在 Merchant 类中添加以下内容,它就可以工作:

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

    【讨论】:

      【解决方案2】:

      PersistentAttribute 既可以用于将类映射到表,也可以用于将属性映射到列。

      如果你忽略它,table-/columname 将与 class-/propertyname 相同,如果缺少则将创建 table/column。这就是您第一次尝试时发生的情况。

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

      【讨论】:

        猜你喜欢
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多