Приведенный ниже код генерирует следующую ошибку:
Параметр '@ID' должен быть определен.
Я что-то делаю неправильно или нельзя использовать в запросе SQL с MySQL переменные, которые не являются параметрами Dapper?
В этом примере @Slug является параметром Dapper, а @ID - нет. Я использую MySQL, поэтому мне не нужно ОПРЕДЕЛЕНИЕ @ID - он определяется при первом использовании.
var sql = @"SELECT @ID := id, slug, Title, Text FROM posts WHERE slug = @Slug; SELECT * FROM comments where postid = @ID;";
using (var connection = GetOpenConnection())
{
var posts = connection.QueryMultiple(sql, new { Slug = slug })
.Map<Post, Comment, int>
(
Post => Post.ID,
Comment => Comment.ID,
(post, comments) => { post.Comments = comments; }
);
return posts.FirstOrDefault();
}