我使用Entity Framework 4.2,并希望调用具有输入参数的存储过程。我Database.ExecuteSqlCommand用来调用存储过程。
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”附近 出现 错误语法 错误 。
根据您的基础数据库提供程序,可以使用以下两种方法之一。
Database.ExecuteSqlCommand( "exec SetElementFrequency {0}, {1}", elementType, frequency);
或者
Database.ExecuteSqlCommand("exec SetElementFrequency ?, ?", elementType, frequency);
您还可以指定elementType和frequency作为DbParameter基于对象的对象,以通过ParameterName属性提供您自己的名称。
elementType
frequency
DbParameter
ParameterName