问题描述
|
我正在尝试XPO,并尝试包装一些现有表。有没有人有这样做的经验?我遇到的问题是确定XPO如何确定关系的链接字段的名称。
例如,我有两个表,
商家(MerchantID,ProcessorID等)与处理器链接1到1
处理器(ProcessorID等...)通过商家将1链接到许多
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文档说上述内容应该可以,但不能。
有什么帮助吗?
解决方法
在尝试了不同的语法之后,我发现如果将以下内容添加到Merchant类中,它将可以正常工作:
public class Merchant : XPLiteObject
{
[Persistent(\"ProcessorID\")]
[Association(\"Processor-Merchants\")]
public Processor Processor;
}
, PersistentAttribute既可用于将类映射到表,也可用于将属性映射到列。
如果将其省略,则表名/列名将与类名/属性名相同,如果缺少,则将创建表名/列。这就是您第一次尝试时发生的事情。
http://documentation.devexpress.com/#XPO/clsDevExpressXpoPersistentAttributetopic