【发布时间】:2011-12-07 04:32:45
【问题描述】:
我有一个 只读 mssql-视图,我想将它映射到 nhibernate(使用 hbm.xml 文件)。 该视图是一个连接两个表的选择。为了给出抽象的见解,选择是这样的:
SELECT A.Id As A_ID, B.Id As B_ID,
A.AttributeA, B.AttributeB,
FROM A INNER JOIN B ON
A.Id = B.RootID
A 和 B 之间是一对多的关系(B 条目是 A 条目的依赖/叶)。
我正在使用 nhibernate 的 hbm.xml 文件,但无法正常工作。
如果有人能让我了解我必须使用的那种 XML,我将不胜感激,我想由于我的视图没有 ID,我必须创建一个复合休眠 id(这将是 ids os A和B一起)但我无法让它工作。 该视图也是只读的,所以我认为这应该使解决方案更容易。
我问这个问题是因为网站上的其他人都没有回答这个问题(有些人使用 fluent-nhibernate,我使用 XML 映射文件)
提前致谢。
【问题讨论】:
-
您在定义复合 ID 时遇到了哪些错误?
-
在我试图给出的这个抽象示例中,存在一个概念错误:由于 B 条目仅依赖于一个 A 条目,因此 B 的 ID 可以用作连接表的 ID (因为不会有任何 B 条目超过一次),所以不需要复合 id。
-
... 但是,如果连接是
LEFT OUTER JOIN而不是我的问题中的内部连接,则仍然需要复合 ID。
标签: vb.net nhibernate mapping nhibernate-mapping