使用NHibernate创建数据库视图

时间:2010-07-21 17:53:13

标签: database nhibernate view

有没有人知道如何使用条件查询的结果从hibernate创建视图?

我们的应用程序的一些遗留部分使用应用程序生成的视图进行数据检索,我喜欢将新的NHibernate内容绑定到那些最小的摩擦力。

我会把它变成一种扩展方法,所以我最终可以做这样的事情:

session.CreateCriteria<Thing>().CreateReportView().List();

有什么想法吗?

现有流程如下:

SQLString = _bstr_t("SELECT name FROM User WHERE Retired = false");

...run the query process the results, then...

SQLStringView = _bstr_t(" \
  BEGIN EXECUTE IMMEDIATE 'CREATE OR REPLACE VIEW ") + ViewName + _bstr_t(" AS ") + SQLString;

因此,每当我们运行此查询时,我们都会获得一个包含相同数据的视图。我无法弄清楚如何复制这是休眠。

3 个答案:

答案 0 :(得分:2)

查看this article以获取将实体类映射到视图和表的说明。我不确定您是否能够按照指定的那样在运行时动态创建视图;但也许这可以作为使用数据库对象映射的模式生成过程的一部分来完成?

答案 1 :(得分:1)

要直接使用NHibernate创建视图,请查看“database-object”映射元素。

Ayende有一个很好的例子here

答案 2 :(得分:0)

如果您只对过滤返回的数据感兴趣,可能需要查看Nhibernate的过滤机制; here is a good article概述了它们的用法。