Considoring以下查询:Nhibernate的采取跳过不产生正确的SQL
session.Query<Brand>()
.Where(x => x.Name == "Clause")
.Select(a => a.Name)
.Take(10)
.ToList();
NHibernate的不产生正确的SQL - 它不会出现要被添加限制器和似乎是生成代码取 - 不在SQL中。
任何想法?
生成的SQL:
select brand0_.br_name as col_0_0_ from Brands brand0_
where brand0_.br_name=?;p0 = 'Clause'
不熟悉这些东西 - 是否可以将呼叫转换为“Take”和“Select”? – 2012-03-26 13:04:05
@Damien_The_Unbeliever我敢肯定,这将带回整个记录,而不仅仅是名称,更差的表现没有区别。 Stuart你用来执行查询的EXACT代码是什么?和什么版本的NHibernate?由于上面的代码实际上没有解决(没有ToList或替代方案)。我尝试了一个非常类似的查询,并且使用了这个输出:selectPTO(@ p0)fundingpac0_.EffectiveDate as col_0_0_ from FundingPackage fundingpac0_ where fundingpac0_.DeletedDate is null; @ p0 = 10 [Type:Int32(0)] – mattytommo 2012-03-26 13:05:51
这个semi- SQL附近的结尾(但不是结尾)冒号是有问题的;它肯定会将分号后的资料留作无效的Informix SQL。我没有看到任何与“Take(10)”相对应的东西。 – 2012-03-26 18:52:22