【问题标题】:Skip (or not supplying an optional parameters)跳过(或不提供可选参数)
【发布时间】:2013-10-22 23:39:44
【问题描述】:

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

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

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

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

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

编辑:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 好的......也许我应该更清楚......“@Frequency”参数将来会从存储过程中完全删除......还有一些遗留应用程序仍在为“@Frequency”提供并且不能在所有应用程序中更改它。新创建的应用程序不会提供@Frequency。
    猜你喜欢
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    相关资源
    最近更新 更多