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();
原文地址:http://hi.baidu.com/bluesky_cn/item/629a9c7e98f0e5376cc37ccf