PetaPoco は素晴らしく、ページ化されたクエリとMulti-Poco マッピングをカバーしていますが、それらを一緒に行う方法があるかどうかを調べていますか?
編集:
MultiPoco データを取得するために使用するリポジトリ メソッドは次のとおりです。
// variables, used in multiple repo methods
private readonly string _selectClause = String.Format(@"SELECT * FROM Clients
OUTER APPLY
(SELECT TOP 1* From Events
WHERE Events.EndDateTime >= '{0}'
AND Events.ClientId = Clients.Id
) Events
WHERE Clients.TenantId=@0", DateTime.UtcNow);
private readonly string _orderbyClause = "ORDER BY Clients.Lastname";
// method
public new IEnumerable<Client> AllByTenantAndStatus(Status status)
{
string sql = String.Format("{0} AND Clients.Status=@1 {1}", _selectClause, _orderbyClause);
// using external relator
// return Db.Fetch<Client, Event, Client>(new ClientEventRelator().MapIt,
// sql, _tenantResolver.CurrentTenantId, status);
return Db.Fetch<Client, Event>(sql, _tenantResolver.CurrentTenantId, status);
}
Petapoco.cs でのメソッド宣言
public Page<T> Page<T>(long page, long itemsPerPage, string sql, params object[] args)
と
public void BuildPageQueries<T>(long skip, long take, string sql, ref object[] args, out string sqlCount, out string sqlPage)
どちらも単一の戻り型パラメーターを受け入れます。
だから私の質問は、PetaPoco で提供されているページ クエリ機能を MultiPoco クエリで使用するための最良のアプローチは何かということだと思います。