【问题标题】:Declare variables to DbMigration.CreateStoredProcedure向 DbMigration.CreateStoredProcedure 声明变量
【发布时间】:2014-05-09 17:27:45
【问题描述】:

我正在尝试使用 DbMigration.CreateStoredProcedure 创建一个函数,该函数接受整数 InvoiceId 并返回一个小数。但是,当我应用迁移时,出现此错误:

必须声明标量变量“@InvoiceId”。

这是 EF 迁移代码:

CreateStoredProcedure("SumInvoiceTransactions", b => b.Decimal(9, 2),
    "RETURN (SELECT SUM(Amount) FROM Transactions WHERE InvoiceId=@InvoiceId)");

这是等效的 SQL 代码:

CREATE FUNCTION SumInvoiceTransactions(@InvoiceId int) RETURNS decimal
AS BEGIN
  RETURN (SELECT sum(Amount) FROM Transactions WHERE InvoiceId=@InvoiceId)
END

如何声明参数?

【问题讨论】:

    标签: sql-server entity-framework entity-framework-migrations


    【解决方案1】:

    这样:

    CreateStoredProcedure("SumInvoiceTransactions", c => new { InvoiceId = c.Int() },
    "RETURN (SELECT SUM(Amount) FROM Transactions WHERE InvoiceId=@InvoiceId)");
    

    【讨论】:

    • 如何声明返回类型?还是我需要?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2023-03-24
    • 1970-01-01
    • 2012-06-15
    • 2014-11-09
    相关资源
    最近更新 更多