クエリで 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>>
それを行うための最良かつ柔軟な方法は何ですか?(すべてのマッピング クラスの基本クラス、ジェネリック)