linq调用存储过程示例

linq 在查询数据方便提供了很大的便利,但有时候还是需要用到存储过程,通过linq来调用存储过程其实也非常方便。直接将存储过程拖到对象关系设计器里,存储过程就可以作为DataContext方法来调用了。

调用存储过程可能得到的结果有几种:
1、没有任何返回
2、return值的方式返回
3、output的方式返回
4、返回记录集

只要知道linq在调用存储过程之后如何获取返回值就可以了。
简单举个例子:(把几种返回放到一起了)
存储过程:
CREATE PROCEDURE [dbo].[GET_NEWSLIST]
@ClassID INT,
@RecordTotal INT=0 OUTPUT
AS
BEGIN
SET @RecordTotal = (SELECT COUNT(1) FROM NEWSINFO WHERE CLASSID=@ClassID) --output值
SELECT * FROM NEWSINFO WHERE CLASSID=@ClassID --输出记录集
return 100 --return值
END

linq里调用和获取返回值:
using (SiteCmsDataContext db = new SiteCmsDataContext())
{
int? records=0; //定义输出的output参数
int classID = 15;
var temp = db.GET_NEWSLIST(classID, ref records);

this.GridView1.DataSource = temp; //temp本身就是IEnumerable 的集合,可以直接作为.net控件的数据源,也可以通过ToList、ToArray等方法来转换。
this.GridView1.DataBind();

string retValue = temp.ReturnValue.ToString(); //获取return值





原文地址:http://hi.baidu.com/bluesky_cn/item/629a9c7e98f0e5376cc37ccf