【发布时间】:2009-04-21 23:10:12
【问题描述】:
我在将表 A 中的列映射到主要映射到表 B 的类的属性时遇到问题。下面更好地解释了这一点:
有一个类 CustomerRisk,它具有属性 Risk 和 CustomerNumber。
在数据库中,这包含两个表:Customer,它有一个 CustomerNumber 列,以及 CustomerRisk,它有一个 Customer 的外键和一个 Risk。
映射风险并不难,但映射 CustomerNumber 是个问题。是否可以在不创建客户类*的情况下做到这一点?这样 NHibernate 就可以加入 Customer 类来选择 CustomerNumber:
select cn.CustomerNumber, r.Description
from CustomerRisk cr
inner join Customer c on c.CustomerID = cr.CustomerID
inner join Risk r on r.RiskID = cr.RiskID
当然,多个 CustomerRisk 记录可以具有相同的 CustomerID。
希望这有点清楚,非常感谢。
- 我知道您通常需要一个客户课程,但我已经“匿名化”了这些课程。
【问题讨论】:
-
我们通过为 Customer 表创建一个类来解决这个问题,但将 Customer 属性隐藏在 CustomerRisk 中(内部,因此 Fluent NH 仍然可以通过 AssemblyInfo 中的 InternalsVisibleTo 访问它)。然后,CustomerRisk.CustomerNumber 属性只返回其内部 Customer 属性的 CustomerNumber 属性。
标签: nhibernate fluent-nhibernate