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 の投稿を数分かけて読みたいと思うかもしれません。

セッションクエリまたは分離基準を使用するのではなく、これを QueryOver として実装することを検討してください。次に、セッション呼び出しのかなり前に検索条件を作成し、最終的にそれを起動する準備ができたら、クエリをセッションに渡すだけです。また、より大きな結果セットの場合は、 Future Valuesと Pagingも忘れないでください。

于 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 に答える