我想将存储过程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参数(双向显示绿色箭头)。无论我是否将参数映射到属性,都会出现相同的错误:
映射函数绑定使用不支持的参数:LastUpdate指定函数Model.Store.ForExample。输出参数只能通过RowsAffectedParameter属性进行映射。使用结果绑定从函数调用返回值。
我尝试在“结果列绑定”中为LastUpdate添加手动绑定,但这没有用。
EF 4是否支持我正在尝试执行的操作?
最佳答案
如错误文本中所述,“输出参数只能通过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属性,如下所示:
存储过程的输出参数只能用于乐观并发。