- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用两个存储过程返回具有相同结构的数据(相同类型的记录列表)。
我两次调用我的方法 Execute(ISession session)。第一次为第一个存储过程(它返回 6 行的正确列表)。第二次 - 对于第二个存储过程(它返回 11 行的列表,但前 6 行来自覆盖正确行的第一个请求)。
但我不能将它用于 IQuery
关于如何修复它的任何想法或链接?
public dynamic Execute(ISession session)
{
var query = session.GetNamedQuery(QueryName)
.SetCacheable(false)
.SetCacheMode(CacheMode.Ignore)
.SetReadOnly(true);
var results = query.List<T>();
return results;
}
最佳答案
我将尝试回答这个问题,因为我想我对正在发生的事情有预感,而且我想让你走上正确的轨道。我在这里做了很多假设,所以如果我的猜测完全错误,请不要对我太苛刻。
感觉就像您正在尝试使用 NHibernate 作为将行简单地转换为对象的工具。相反,NHibernate 是一种在面向对象领域模型和关系数据库领域模型之间进行转换的工具。它所做的不仅仅是将行转换为对象。特别是,您在这里遇到的 NHibernate 功能是 NHibernate 如何确保在单个 NHibernate session 中,数据库中表示单个实体的单个行将对应于对象的单个实例。它使用其一级缓存来完成此操作。
假设您有两个查询,QueryA 和 QueryB。这些查询的构造使得它们每个都从单独的表 TableA 和 TableB 中提取,因此它们实际上代表了单独的实体。然而,查询也以某种方式构建,以便结果看起来像 NHibernate 一样的实体。如果 QueryA 和 QueryB 碰巧返回一些相同的 ID,那么 NHibernate 会将它们组合到同一个实例中,因此当您运行 QueryB 时,您会看到 QueryA 的一些结果重复出现。
那么我们该如何解决呢?
快速而肮脏的解决方法是为这两个查询中的每一个使用不同的 session ,或者在它们之间抛出一个 session.Clear()
。更合适的解决方法是更改这些命名查询,以便它们实际上返回两个不同的实体。
关于c# - NHibernate 存储过程返回先前查询的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18444388/
我的应用将 SceneKit 内容的“页面”与图像和文本交替。当我从图像页面前进到新的 SceneKit 页面时,前一个 SceneKit 页面中的内容会短暂显示,然后被新内容替换。时髦。 我只使用一
我正在尝试处理(在 C# 中)包含一些数字数据的大型数据文件。给定一个整数数组,如何对其进行拆分/分组,以便如果下一个 n(两个或更多)是负数,则前一个 n 元素被分组。例如,在下面的数组中,应该使用
刚接触promises,研究过。所以我的代码和我的理解: sql.connect(config).then(function(connection) { return connection.req
目前我在 if (roobaf) block 中有一些代码,这取决于 foo 和 bar 是否为假。我可以在 block 内再次检查这些条件,但感觉像是不必要的代码重复。 if (foo) {
我是一名优秀的程序员,十分优秀!