一尘不染

使用带参数的Database.ExecuteSqlCommand的正确语法是什么?

sql

我使用Entity Framework
4.2,并希望调用具有输入参数的存储过程。我Database.ExecuteSqlCommand用来调用存储过程。

但是,文档缺少用于正确映射参数的正确的调用语法。我的google-foo让我失望了,我们将不胜感激。

即我有一个程序

procedure SetElementFrequency
  @ElementTypeID integer,
  @Frequency float
as ...

我试着用

Database.ExecuteSqlCommand("exec SetElementFrequency @p0 @p1", 
                            elementType, frequency);

Database.ExecuteSqlCommand("exec SetElementFrequency {0} {1}", 
                            elementType, frequency);

但是它们都失败,并 在“ @ p1”附近 出现 错误语法 错误


阅读 204

收藏
2021-03-10

共1个答案

一尘不染

根据您的基础数据库提供程序,可以使用以下两种方法之一。

Database.ExecuteSqlCommand(
    "exec SetElementFrequency {0}, {1}",
    elementType, frequency);

或者

Database.ExecuteSqlCommand("exec SetElementFrequency ?, ?", elementType, frequency);

您还可以指定elementTypefrequency作为DbParameter基于对象的对象,以通过ParameterName属性提供您自己的名称。

2021-03-10