PetaPoco великолепен и охватывает постраничные запросы и Multi-Poco mapping, но я ' Пытаюсь понять, есть ли способ сделать их вместе?
Изменить:
Вот метод репозитория, который я использую для получения данных 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)
оба из них принимают один параметр возвращаемого типа.
Итак, я предполагаю, что мой вопрос заключается в том, как лучше всего использовать функциональность Paged-запроса, предоставленную в PetaPoco, с запросами MultiPoco, поскольку предоставленный метод работает только с одним типом возврата?