gpt4 book ai didi

c# - ObjectContext.ExecuteStoreCommand 无法识别参数

转载 作者:行者123 更新时间:2023-11-30 19:42:05 28 4
gpt4 key购买 nike

我在这里做错了什么?

...
using (var ctx = ObjectContextManager<MyDataContext>.GetManager("MyDataContext"))
{
var idsToUpdate = "2,3";

var parameters = new[]
{
new SqlParameter("DesiredEndDate", SqlDbType.DateTime).Value = newUpperLimit,
new SqlParameter("TasksToUpdate", SqlDbType.NVarChar).Value = idsToUpdate
};

ctx.ObjectContext.ExecuteStoreCommand("UPDATE dbo.Tasks SET DesiredEndDate = @DesiredEndDate WHERE Id IN (SELECT Id FROM dbo.fn_Split(@TasksToUpdate, N','))", parameters);

ctx.ObjectContext.SaveChanges();
}
...

我得到了错误

Must declare the scalar variable "@DesiredEndDate".

Must declare the scalar variable "@TasksToUpdate".

但是我看不出我的代码有什么问题:/

最佳答案

我仍然不明白为什么 @ParamName 语法不起作用。但是有一个替代方案,它确实有效:

 ctx.ObjectContext
.ExecuteStoreCommand(
"UPDATE dbo.Tasks SET DesiredEndDate = {0} WHERE Id IN (SELECT Id FROM dbo.fn_Split({1}, N','))",
newUpperLimit,
idsToUpdate);

这有额外的好处,我不需要创建 SqlParameter

关于c# - ObjectContext.ExecuteStoreCommand 无法识别参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18122157/

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