2017-04-12 1 views
0

나는 Dapper's Multi Mapping documentation으로 갔지만 여전히 혼란 스럽습니다.Dapper Multi Mapping을 이해하려고 시도합니다.

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(); 

나를 어떤 혼란 단정 한 문서에서 예제는 변수 postuser 어디에서 왔는지이다? 나는

(post, user) => { post.Owner = user; return post;}

이 매핑을 정의하는 기능입니다 .. PostUser이 모델은 내가 그 이해

connection.Query<Post, User, Post>

것을 ...이 줄을 볼 수 있지만, 어디 할 postuser이 인스턴스화됩니까?

+0

그들은 "어디서 왔는지", [lambda expression] (https://msdn.microsoft.com/en-us/library/bb397687.aspx)입니다. – DavidG

답변

1

람다 함수. 기술적 인 설명은 모르지만 기본적으로 connection.Query는 쿼리별로 게시물과 사용자를 포함하는 여러 레코드를 반환합니다. (post, user) => 귀하는 게시물이 게시물을 대표한다고 선언하고 사용자는 각 레코드의 사용자를 나타냅니다.

관련 문제