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 查询一起使用的最佳方法是什么,因为提供的方法仅适用于单一返回类型?