【发布时间】:2015-10-14 17:11:01
【问题描述】:
基本上,我有一个正在尝试使用 NHibernate 映射到的现有数据库。
这是一个简化的例子:
CREATE TEMPORARY TABLE exmplTable (
id INT,
changeNumber INT,
name VARCHAR(255),
address VARCHAR(255)
)
其中可能包含以下记录:
1 0 'John Doe' '123 Fake St'
1 1 'John Doe' '145 Another St' -- John moved
1 2 'John Doe' '42 Clark St' -- John moved again
我只关心单个id 的最新信息。如果我要手动映射这些,我会做一个视图:
SELECT id, name, address
FROM exmplTable E
INNER JOIN
(
SELECT id, MAX(changeNumber) cn
FROM exmplTable
GROUP BY id
) E2
ON E.id = E2.id AND E.changeNumber = E2.cn
然后通过id这样获取一条记录:
SELECT * FROM viewname WHERE id = @id
那么:
如果没有在数据库中创建视图,也没有到 DAL 的接口来通过手动执行聚合查询来检索记录,是否可以只让 NHibernate 映射到这种关系?
请注意,尽管我使用的是 NHibernate Hibernate xml,但其工作方式与 AFAIK 相同。
【问题讨论】:
标签: sql hibernate nhibernate nhibernate-mapping