我想将存储过程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属性,如下所示:


存储过程的输出参数只能用于乐观并发。

10-04 22:24