Answers for "Relations in dapper"

0

Relations in dapper

## Many To Many Relationships

using (var connection = new SQLiteConnection(connString))
{
    var sql = @"select p.postid, headline, t.tagid, tagname
                from posts p 
                inner join posttags pt on pt.postid = p.postid
                inner join tags t on t.tagid = pt.tagid";
    var posts = await connection.QueryAsync<Post, Tag, Post>(sql, (post, tag) => {
        post.Tags.Add(tag);
        return post;
    }, splitOn: "tagid");
    var result = posts.GroupBy(p => p.PostId).Select(g =>
    {
        var groupedPost = g.First();
        groupedPost.Tags = g.Select(p => p.Tags.Single()).ToList();
        return groupedPost;
    });
    foreach(var post in result)
    {
        Console.Write($"{post.Headline}: ");
        foreach(var tag in post.Tags)
        {
            Console.Write($" {tag.TagName} ");
        }
        Console.Write(Environment.NewLine);
    }
}
Posted by: Guest on January-20-2022

Code answers related to "Relations in dapper"

Browse Popular Code Answers by Language