ToFuture は nhibernate linq で動作しますか? もしそうなら、あなたはそれをどのように使いますか?
3715 次
2 に答える
5
ToFuture は、データベース ドライバが MulitpleQueries をサポートしている場合にのみ機能することに注意してください。これは、一部のドライバー (MySql、SqlServer など) でのみ発生しますが、すべてのドライバー (Oracle など) では発生しません。
于 2011-12-02T10:53:06.263 に答える
3
はい、そうです。簡単な例を次に示します。
var blogs = _session.Query<Blog>()
.Take(30)
.ToFuture();
var blogCount= _session.Query<Blog>()
.ToFutureValue(x => x.Count());
Console.WriteLine(blogCount.Value); // DB is queried here.
これは、ページ化された検索結果と検索結果の合計数を表示する顧客検索フォームに使用した例です。IQueryable を再利用して 2 つの Future を作成できることに注意してください。Filter メソッドは、ユーザーが検索したフィールドに基づいて IQueryable を作成しました。
int resultsPerPage = 50;
var query = _session.Query<CustomerSearch>()
.FilterById(model)
.FilterByFirstName(model)
.FilterByLastName(model)
.FilterBySocialSecurityNumber(model)
.FilterByPrimaryPhoneNumber(model);
var futureResults = query
.OrderBy(x => x.Id)
.Skip(model.Page * resultsPerPage)
.Take(resultsPerPage)
.ToFuture();
var futureCount = query.ToFutureValue(x => x.Count());
于 2011-04-29T21:22:02.940 に答える