我想对查询进行 LINQ 投影。为此,我使用LINQ Projector库。该项目的灵感来自 Paul Hiles 的这篇文章。
该库允许您进行以下操作:
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>>
此示例。
什么是最好和灵活的方法?(所有映射类的基类,泛型)