【发布时间】:2010-12-29 23:44:41
【问题描述】:
如果我尝试将包含布尔字段上的 lambda 过滤器的 where 子句添加到 nhibernate linq 查询,过滤器似乎被忽略:
var 结果 = Session.Linq().Where(x=> x.Approved);
Session 是一个 iSession,Newspaper 是一个简单的对象,其中包含 NewspaperId int、Name - varchar(50) 和 Approved - bit 字段。
当我运行它时,会生成以下 sql:
选择 this_.NewspaperId as Newspape1_33_0_, this_.Name as Name33_0_, this_.Approved as Approved33_0_, FROM Newspapers this_
如果它用于布尔字段,它似乎会忽略 lambda。 它适用于名称字段,即:
var result = Session.Linq().Where(x=> x.Name == "The Times");
结果: exec sp_executesql N'SELECT this_.NewspaperId as Newspape1_33_0_, this_.Name as Name33_0_, this_.Approved as Approved33_0_ FROM Newspapers this_ WHERE this_.Name = @p0',N'@p0 nvarchar(9)',@p0=N'The时报'
有人知道为什么我不能查询布尔值吗?
非常感谢任何帮助 我正在使用带有 linq 的 NHibernate 2.1
【问题讨论】: