【发布时间】:2011-06-27 10:52:22
【问题描述】:
我是 NHibernate 的新手,正在与 FluentNhibernate 合作开展一个新项目。在执行一个非常简单的 linq 查询时,我遇到了一个奇怪的问题。
查询 1 - 效果很好
//Query 1
var customers = from customer in _session.Query<Customer>()
where customer.FirstName == "john"
select new
{
customer.FirstName,
customer.LastName
};
当执行下面的查询 2 时,我收到一个错误“无法执行查询”
//Query 2.
var customers = from customer in _session.Query<Customer>()
where customer.FirstName.Contains("john")
select new
{
customer.FirstName,
customer.LastName
};
NH 生成的查询是,
选择 customer0_.FirstName 作为 col_0_0_,customer0_.LastName 作为 col_1_0_ 来自 tblCustomer customer0_ 其中 customer0_.FirstName like ('%'||@p0||'%');@p0 = 'john'
它生成了 FirstName like ('%'||@p0||'%') 而不是 FirstName like ('%'+@p0+'%') 据我所知。
我使用的数据库是SQLServerCE,NHibernate版本是3.1.0
请帮助解决这个问题。
【问题讨论】:
-
您使用的是哪个版本的 NHibernate?
-
||不可能是您正在使用的 SQL 方言中字符串连接的一个选项吗?你用的是什么数据库?查询真的失败了吗? -
我正在使用 NHibernate v 3.1.0
-
我使用的是SQL Server内嵌版,查询失败。
标签: linq nhibernate fluent-nhibernate