Dapper 다중 매핑 및 왼쪽 조인

dapper

문제

이 시험에서 :

    public class Author
    {
        public int AuthorId { get; set; }
        public List<Book> Books { get; set; } = new List<Book>();
    }
    public class Book
    {
        public int BookId { get; set; }            
    }
    [Fact]
    public async Task DapperCollapseLeftJoin()
    {
        var sql = @"      select 1 as AuthorId, 1 as BookId
                    union select 1 as AuthorId, 2 as BookId
                    union select 2 as AuthorId, 3 as BookId
                    union select 2 as AuthorId, 4 as BookId";
        var authorsWithBooks = 
            (await AC.OpenConnection.QueryAsync<Author, Book, Author>(sql,
                (author, book) => { author.Books.Add(book); return author; }, 
                splitOn: "AuthorId, BookId")).ToList();

        // fails because we're getting 4 author+book rows
        Assert.Equal(2, authorsWithBooks.Count);
    }

Dapper의 설명서에서는 다중 매핑 행을 여러 객체에 매핑하고 실제로 객체를 축소하는 방법에 대해서는 언급하지 않았습니다 (가장 왼쪽의 열 값이 반복되는 왼쪽 / 내부 조인 에서처럼).

이 일을 가능하게하기위한 더 진귀한 방법이 있습니까?

전문가 답변

이 평평하게하기위한 현재 inbuilt 메커니즘은 없지만 여기 테스트 스위트에 예제가 있습니다 . 상당히 귀엽지는 않지만 이것이 더 나은 지원을하고 싶습니다 .하지만 할 일 목록의 맨 위에 도달하지 못했습니다.



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