我已经在这个项目上使用了Dapper好几个月,并且没有任何问题。但是现在我必须使用原始SQL而不是使用dapper的存储过程来创建和更改数据库中的 Users 和 Roles ,因为现在不推荐使用sp_addrolemember
。
我使用它作为我的短小精悍的代码
conn.Open();
var p = new DynamicParameters();
p.Add("@UserLogin", user);
p.Add("@UserRole", role);
conn.Execute("Create User @UserLogin", p);
conn.Execute("ALTER ROLE @UserRole ADD MEMBER @UserLogin", p);
我一直收到同样的错误:
@UserLogin的语法无效
我已将domain\username
作为登录信息传递给我,并且我已经在没有domain\
的情况下尝试了它。一样。有人可以对此有所了解吗?
答案 0 :(得分:-1)
我不熟悉Dapper,但您可以尝试将参数值嵌入到要发送的SQL字符串中:
conn.Open();
conn.Execute("Create User " + user);
conn.Execute("ALTER ROLE " + role + " ADD MEMBER " + user);
请注意,这会带来安全风险,并可能导致其他问题!