我想在查询上进行LINQ投影。为此,我使用LINQ Projector库。该项目的灵感来自Paul Hiles的post。
此库允许您进行以下操作:
public class Blog
{
public int Id {get;set;}
public string Name {get;set;}
public ICollection<Post> Posts {get;set;}
}
public class BlogView
{
public int Id {get;set;}
public string BlogName {get;set;}
public int NumberOfPosts {get;set;}
}
var person = new DataContext().Blog.Project().To<BlogView>(
//custom mappings
m=>m
.Map(t=>t.BlogName, s=>s.Name)
.Map(t=>t.NumberOfPosts, s=>s.Posts.Count());
).First();
我喜欢它,但我想在类中封装自定义映射。对于此示例,方法To
可以接受Action<Mapper<Person, PersonView>>
。
最好和最灵活的方法是什么? (所有映射类的基类,泛型)