使用PetaPoco分页映射关系

时间:2016-11-03 07:20:45

标签: c# sql-server petapoco

我正在使用PetaPoco v5.1.228.0,我正在尝试使用分页(每页30个项目)来获取人员列表以及他们所属的类别。

这是我的代码:

IEnumerable<Person> people;
var sql = new Sql("SELECT * FROM Person p INNER JOIN Category c ON p.CategoryId = c.Id");

using (var db = GetDatabaseConnection()) {
   var paging = db.Page<Person>(currentPage, 30, sql);
   people = paging.Items;
}

Person.cs

public class Person {
   public int Id { get; set; }
   public string Name { get; set; }
   public int CategoryId { get; set; }
   public Category Category { get; set; }
}

Category.cs

public class Category {
   public int Id { get; set; }
   public string Name { get; set; }
}

问题是它不会填充Person对象中的Category属性。据我所知,只有db.Fetch允许指定多种类型,但在这种情况下,我需要自己编写分页功能。

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以通过IDatabase上的扩展方法来实现:

EventHandler