## 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);
}
}