我一直在经历Dapper's Multi Mapping documentation,但仍感到困惑。
这是Dapper文档中的示例
class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public User Owner { get; set; }
}
class User
{
public int Id { get; set; }
public string Name { get; set; }
}
var sql =
@"select * from #Posts p
left join #Users u on u.Id = p.OwnerId
Order by p.Id";
var data = connection.Query<Post, User, Post>(sql, (post, user) => { post.Owner = user; return post;});
var post = data.First();
让我感到困惑的是变量post
和user
来自哪里?我在这行看到......
connection.Query<Post, User, Post>
Post
和User
是模型,我理解......
(post, user) => { post.Owner = user; return post;}
是一个定义映射的函数,但post
和user
在哪里实例化?
答案 0 :(得分:1)
它是一个Lambda函数。不知道技术解释,但基本上connection.Query返回多个记录,每个记录包含一个帖子和用户根据查询。用(post,user)=&gt;您宣布该帖子将代表帖子,用户将代表每条记录的用户。