다퍼 멀티 매핑을 이해하려고 시도 중입니다.

c# dapper

문제

나는 Dapper의 Multi Mapping 문서읽었 지만 여전히 혼란 스럽다.

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

가변적 인 postuser 가 어디서 왔는지는 혼란 스럽습니다. 나는이 줄에서 ...

connection.Query<Post, User, Post>

PostUser 는 모델이고 나는 그것을 이해합니다 ..

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

는 매핑을 정의하는 함수이지만 postuser 어디서 인스턴스화됩니까?

수락 된 답변

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



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow