以下のコードは、次のエラーを生成します。MySql Connector/NetおよびDapperを使用したパラメータ以外のSQL変数?
Parameter '@ID' must be defined.
私が何か間違ったことをやっているか、それがDapperのパラメータではありませんMySQLでSQLクエリ内の変数を使用することはできませんか?
この例では、@SlugはDapperパラメータですが、@ IDはDapperパラメータではありません。私はMySQLを使用しているので、@ IDを定義する必要はありません。最初の使用で定義されます。あなたのSQLコードに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();
}
ありがとう、私はちょうど前に同じエラー時間を持っています。 –
うわー、それは本当に私を助けました。どうもありがとう! – harriyott
ありがとう、非常に役立つブログ!!! – Rida