是否有人知道如何根据条件查询的结果从休眠中创建视图?
[我们的应用程序中有一些遗留部分,它们使用该应用程序生成的视图进行数据检索,我希望将新的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;
因此,每当我们运行此查询时,我们都会得到一个包含相同数据的视图。我无法弄清楚如何将其复制为休眠状态。
要直接使用NHibernate创建视图,请查看“数据库对象”映射元素。
Ayende有一个很好的例子here。
签出this article,了解将实体类映射到视图和表的说明。我不确定您是否可以在运行时根据指定动态创建视图;但是也许这可以作为使用数据库对象映射的模式生成过程的一部分来完成?
如果您只想过滤返回的数据,则可能要看一下Nhibernate的过滤机制; here is a good article概述其用法。