我想将存储过程OUTPUT参数映射到实体。
如,
PROCEDURE ForExample
@ID int,
@LastUpdate datetime OUTPUT
AS
Update EntityTable Set LastUpdate = GETDATE() Where ID = @ID
Select @LastUpdate = LastUpdate From EntityTable Where ID = @ID
我想将@LastUpdate输出参数映射到实体属性。
在“存储过程映射”对话框中,@ LastUpdate参数显示为InOut参数(绿色箭头向两个方向)。无论我是否将参数映射到属性,我都会得到同样的错误:
映射函数绑定使用不受支持的参数指定函数Model.Store.ForExample:LastUpdate。输出参数只能通过RowsAffectedParameter属性进行映射。使用结果绑定从函数调用返回值。
我尝试在“结果列绑定”中为LastUpdate添加手动绑定,但这不起作用。
我正在尝试做什么来支持EF 4,如果是这样,它是如何完成的?
答案 0 :(得分:1)
正如在错误文本中所说,“输出参数可能只能通过RowsAffectedParameter属性进行映射。使用结果绑定从函数调用返回值”
如果您希望您的程序返回一些值,例如最后更新,它应该通过结果集返回它。这意味着,您的存储过程应如下所示:
PROCEDURE ForExample
@ID int,
AS
Update EntityTable Set LastUpdate = GETDATE() Where ID = @ID
/*return lastupdate in resultset*/
Select LastUpdate as LastUpdate From EntityTable Where ID = @ID
并且您应该将结果集列映射到lastupdate属性,如下所示:
存储过程的输出参数只能用于乐观并发。
答案 1 :(得分:0)