注册

C# EntityFrameworkCore.Dm DmProvider调用存储过程,参数不能根据参数名做对应,只与参数顺序有关

asd 2023/03/28 1039 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:V8
【操作系统】:Windows
【CPU】:i5-9400
【问题描述】*:项目从MySql迁移到达梦过程中发现的问题
//存储过程
CREATE OR REPLACE PROCEDURE "TestProc"("Id" IN VARCHAR(50),"Name" IN VARCHAR(50))
AUTHID DEFINER

AS
BEGIN
/执行体/
select Id,Name;
END;

//C#代码1
DynamicParameters parameters = new DynamicParameters();
parameters.Add("Id", "1");
parameters.Add("Name", "张三");
var list = QueryByProc<Entity>("TestProc", parameters).ToList();
//结果1
{
"Id":"1",
"Name":"张三"
}
//C#代码2
parameters = new DynamicParameters();
parameters.Add("Name", "张三");
parameters.Add("Id", "1");
var list2 = QueryByProc<Entity>("TestProc", parameters).ToList();
//结果2
{
"Id":"张三",
"Name":"1"
}

//用到的类库
Microsoft.EntityFrameworkCore.Dm 3.1.0.7672
DmProvider 1.1.0.14449
Dapper 2.0.35.21366

//问题
1.我在代码里写了参数名;调用存储过程时,参数不能根据参数名做对应,只跟参数的顺序有对应。
2.Sqlsuger调用有同样的问题
3.参数parameters用class时会报错:第1 行附近出现错误:[TestProc]调用参数不兼容或者不匹配
var parameters = new Entity()
{
Id="1",
Name="2"
//还有其他属性,暂不赋值
}

回答 0
暂无回答
扫一扫
联系客服