跳过(或不提供可选参数)

时间:2013-10-22 23:39:44

标签: sql-server entity-framework tsql sp-executesql

如何使用Database.ExecuteSqlCommand跳过(或不提供可选参数)?

create procedure SetElementFrequency
  @ElementTypeID integer,
  @Frequency float = null,
  @ElementName integer,
as ...

我没有任何运气尝试了以下内容..它仍然希望我提供@Frequency param

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

Database.ExecuteSqlCommand(
    "exec SetElementFrequency @ElementTypeID, @ElementName",
    elementType, elementName); 

修改

将来会从存储过程中完全删除“@Frequency”参数。还有一些遗留应用程序仍在为@Frequency提供,并且不能在所有应用程序中更改它。新创建的应用程序将不会提供@Frequency

1 个答案:

答案 0 :(得分:1)

您可以更改您的exec格式以使用这样的SQL参数化,看看它是否适合您:

Database.ExecuteSqlCommand(
"exec SetElementFrequency @ElementTypeID = {0}, @Frequency = {1}, @ElementName = {2}",
elementType, null, elementName);