C# nhibernate linq基础

C# nhibernate linq基础,c#,linq,nhibernate,C#,Linq,Nhibernate,我需要将此查询转换为nhibernate linq IEnumerable<Account> accounts = from a in dc.Accounts where (a.FirstName + " " + a.LastName).Contains(SearchText) || a.Email.Contains(SearchText

我需要将此查询转换为nhibernate linq

 IEnumerable<Account> accounts = from a in dc.Accounts
                                 where (a.FirstName + " " + a.LastName).Contains(SearchText) ||
                                        a.Email.Contains(SearchText) ||
                                        a.Username.Contains(SearchText)
                                 select a;
IEnumerable accounts=来自dc.accounts中的
其中(a.FirstName+“”+a.LastName).包含(SearchText)||
a、 Email.Contains(搜索文本)||
a、 Username.Contains(搜索文本)
选择一个;
我试过了,但一开始我就卡住了,所以我需要帮助

IEnumerable<Account> accounts = NHSession.Query<Account>().Where(x=>x.FirstName)
IEnumerable accounts=NHSession.Query()。其中(x=>x.FirstName)

下面的查询将返回
IQueryable
,您可以使用它进行进一步查询,也可以计算以获得结果

var accounts = NHSession.Query<Account>().Where(a=> (a.FirstName+" "+a.LastName).Contains(SearchText) || a.Email.Contains(SearchText) || a.Username.Contains(SearchText) ); 
var accounts=NHSession.Query();

从查询的外观来看,您可能需要花几分钟时间阅读Ayende关于复杂搜索的文章


与其使用会话查询或分离的条件,不如将其作为一个查询版本来实现。这样,您就可以在会话调用之前构建搜索条件,然后在最终准备启动时将查询传递给会话。另外,不要忘了对更大的结果集进行分页:

“我需要帮助”不是一个问题如果你问一个特定的问题,你会得到更多有用的答案。