问: 我有一个存储过程,其返回值由 MAX() 进行计算。 在将该存储过程拖动到 O/R 设计器图面时,返回值不正确。

答: LINQ to SQL 提供了两种方法来通过存储过程返回数据库生成的值:

  • 通过命名输出结果。

  • 通过显式指定输出参数。

下面是错误输出的示例。 因为 LINQ to SQL 无法映射结果,所以始终返回 0:

create procedure proc2

as

begin

select max(i) from t where name like 'hello'

end

下面是使用输出参数获得正确输出的示例:

create procedure proc2

@result int OUTPUT

as

select @result = MAX(i) from t where name like 'hello'

go

下面是通过命名输出结果获得正确输出的示例:

create procedure proc2

as

begin

select max(i) AS MaxResult from t where name like 'hello'

end

posted on 2013-08-08 17:25  松竹梅  阅读(148)  评论(0编辑  收藏  举报