gpt4 book ai didi

sql - 带有 MySql Connector/Net 和 Dapper 的非参数 SQL 变量?

转载 作者:行者123 更新时间:2023-12-04 09:19:56 28 4
gpt4 key购买 nike

下面的代码生成以下错误:

Parameter '@ID' must be defined.



我是不是做错了什么,还是不能在 SQL 查询中使用不是 Dapper 参数的 MySQL 变量?

在这个例子中,@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();
}

最佳答案

结果是“MySql Connector/Net”产生了错误。

为了在 MySql Connector/Net 中使用非参数 SQL 变量,您必须将以下选项添加到您的连接字符串中:

  • “允许用户变量=真”

  • 见: http://blog.tjitjing.com/index.php/2009/05/mysqldatamysqlclientmysqlexception-parameter-id-must-be-defined.html

    关于sql - 带有 MySql Connector/Net 和 Dapper 的非参数 SQL 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9186983/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com