【发布时间】:2010-07-21 17:53:12
【问题描述】:
有谁知道如何使用条件查询的结果从休眠状态创建视图?
我们的应用程序有一些遗留部分使用应用程序生成的视图进行数据检索,我喜欢将新的 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;
所以每当我们运行这个查询时,我们都会得到一个包含相同数据的视图。我不知道如何复制这是休眠状态。
【问题讨论】:
-
您的数据库中已经存在视图?还是您的应用会即时创建它们?
-
应用程序当前使用 ADO 动态创建它们。我们将一切都转移到使用 NHibernate,但需要维护遗留东西的视图。所以我们需要在查询执行的时候创建它。
-
@Matt Sharpe:我不确定我是否完全理解;你能发布一些示例代码来解释你的“only the fly”视图现在是如何工作的吗?
-
当用户运行过滤器以查看特定数据时,记录会返回给他们,但结果集也会写入视图,然后用于报告和某些屏幕的数据访问。因此,每次用户运行过滤器(这是一个 SQL 查询)时,结果数据都会写入视图。我需要使用 Hibernate 做同样的事情。
-
“视图”是指数据库中的视图,还是应用程序端存在的东西?另外,这是用于测试代码还是用于生产代码?
标签: database nhibernate view