我有两个表Deal
和Cost
。成本可以是多种类型,例如计划,未计划。每笔交易只能有一种成本。这很容易就可以映射成交易的多对一方式,从而得到成本的IList。但我想要的是创建一个为每个成本命名属性的成本对象。因此,对于看起来像这样一个数据库:Nhibernate映射:在一个对象内封装一个列表
Deal: Cost
ID Name ID DealID Type Value
--------- -------------------------------
1 Test 1 1 Planned 10
2 1 Unplanned 5
就是这个样子
Deal.Costs.Planned = 10m;
Deal.Costs.Unplanned = 5m;
访问的是如何去映射的最佳方式?我是否应该映射它,还是应该手动编写属性来查询基础集合?
我看到它的困难是映射成本的属性,以便它们映射到同一个表中的不同行。使用其中一列作为鉴别器。
这很有道理。但是,我怎么能够从组件映射中为列表的每个属性选择Costs表中的不同行,我需要设置某种鉴别器,但我从来没有见过这样做。 – 2009-06-01 11:26:57
如果您将成本映射为交易属性,那么您需要将外键添加到交易表中。我假设你有控制数据库。 – 2009-06-01 11:35:56