为什么升级到nhibernate 3.0后使用linq时不会运行任何查询

时间:2010-12-28 12:07:54

标签: c# linq nhibernate

我使用的是nhibernate 2.1和linq提供程序。我有以下代码:

public IQueryable<T> Query<T>()
{
     return Session.Linq<T>();
}

这将允许我运行这样的查询:

IEnumerable<Picture> pictures = Query<Picture>();

我刚刚升级到nhibernate 3.0(这似乎有更成熟的linq功能)和这段代码

Session.Linq<T>

无法编译

我尝试将其替换为:

Session.Query<T>

已编译,但我的所有查询现在返回0条记录。

任何人都可以帮我向我解释这个升级路径,如果我做错了什么?基于this post,此语法应该有效,但似乎总是返回0条记录。

注意:

一些额外的信息:我刚刚运行了nhibernate profiler并且它检测到会话但它没有显示正在运行的任何SQL查询。是否有任何理由可以让人想到不会运行任何查询?

2 个答案:

答案 0 :(得分:1)

我明白了。问题是一个post build事件,它运行一个脚本将旧版本的nhibernate复制回bin目录

答案 1 :(得分:0)

我不希望IEnumerable图片= Session.Query();执行一些sql,因为声明了一个枚举,但没有执行。 IEnumerable pictures = Session.Query()。ToList();将执行sql。