1

我需要将此查询转换为 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<Account> accounts = NHSession.Query<Account>().Where(x=>x.FirstName)
4

2 回答 2

2

从您查询的外观来看,您可能需要花几分钟时间阅读 Ayende 在此处找到的关于复杂搜索的帖子。

而不是使用 Session Query 或 Detached Criteria - 考虑将其实现为 QueryOver。然后,您可以在会话调用之前构建搜索条件,然后在您最终准备好启动它时将查询传递给会话。也不要忘记更大的结果集的未来值和分页:

于 2013-02-24T02:22:54.170 回答
1

下面的查询将返回IQueryable<Account>,您可以使用它进行进一步查询或评估以获得结果。

var accounts = NHSession.Query<Account>().Where(a=> (a.FirstName+" "+a.LastName).Contains(SearchText) || a.Email.Contains(SearchText) || a.Username.Contains(SearchText) ); 
于 2013-02-23T23:58:23.577 回答