假设我在MS中存储了一个proc。现在,我已经转到了MySQL,我希望将所有的SQL查询都保存在C# asp.net核心应用程序中。
问题首先是更大的查询,其中可以是SQL动态内部变量。
即Select @TypeId := TypeId, @StartDate := StartDate From Test_test Where Id = @Id
在这个示例中,@Id应该由Dapper映射(这个变量从DAL传递到MySQL数据库),但是不应该映射@TypeId和@StartId。
NULL := StartDate而不是@StartDate := StartDate在查询创建不应该由dapper映射的动态变量的SQL查询中,如何使用Dapper?
发布于 2019-03-07 20:04:42
只要在连接字符串中包含AllowUserVariables=true,在使用Dapper的查询中使用SQL变量就不会有任何问题。这允许客户端库在SQL中“忽略”@TypeId和@StartDate,而不需要在MySqlCommand.Parameters集合中指定它们。
只要您在传递给Dapper的匿名对象中不包含带有这些名称的属性(即,不要执行new { StartDate = DateTime.Now, TypeId = 1 }),Dapper就不会用这些名称创建任何参数,不会将任何值映射到它们,并将MySQL传递到MySQL服务器,以便作为服务器端变量进行计算。
https://stackoverflow.com/questions/55048311
复制相似问题