我们正在试验 DevExpress XAF 和 XPO,以便将其用于我们进一步开发现有的小型企业 ERP 系统。我们有一个 SQL 数据库,不能更改现有表。我们正在尝试做的是仅将新的所需表属性添加到新表中,然后应该通过对象继承(MapInheritanceType.OwnTable
)“连接”到旧表。
例如:
我们有一个旧的 tCustomer 表。现在我们添加一个 XPO 对象 tCustomerExtended 像
public class tCustomerExtended : test.Module.BusinessObjects.db.tCustomer ...
然后tCustomerExtended
该类将使用新属性进行扩展,并且tCustomer
该类保持不变(以便由旧的客户端应用程序使用)。
这当然工作正常。tCustomerExtended
使用主键 kCustomer(遗留表的键)生成一个新表。XAF 还按预期生成 UI:tCustomerExtended
视图是空的,因为它显示了tCustomerExtended
条目。
!!!但我们真正想要实现的是tCustomer
在此视图中显示所有现有条目以及tCustomerExtended
. 然后 OnSaving 方法应将旧属性保存到 tCustomer 并将新属性保存到 tCustomerExtended。我们还必须生成一个 kCustomer 密钥,因为旧的 tCustomer 表 kCustomer PK 没有身份规范。
目前我不知道如何在不改变旧的情况下实现这一点tCustomer
(绝对不允许)。