什么类型的会话.queryover回报
本文关键字:queryover 回报 会话 类型 什么 | 更新日期: 2023-09-27 18:07:26
我正在查看一些用于nhibernate的代码,其中我基于几个条件应用where子句。像这样:
var query = session.QueryOver<Client>().Where(x => x.IsDeleted == false);
if (status == "active")
query.Where(x => x.IsActive == true);
这里没有问题,我可以说:query.where(xxx)
但是当我把它改成:
IQueryOver query = session.QueryOver<Client>().Where(x => x.IsDeleted == false);
if (status == "active")
//squiggly red lines on the line below!!!
query.Where(x => x.IsActive == true);
我的query.where(xxxx)
在if
下得到红色的弯曲线。我检查了session.QueryOver
的返回类型,它返回IQueryOver
类型,为什么它会抱怨?
是因为我试图使接口类型的查询对象,当它应该是实现接口的具体类?
这是如何使用QueryOver
处理动态查询:
var query = session.QueryOver<Client>()
.Where(x => x.IsDeleted == false);
if (status == "active")
query = query.Where(x => x.IsActive == true);
var clients = query.List(); // To execute the query and get the result (root entity)