執行儲存過程返回游標集合轉換成List

2021-09-08 08:51:54 字數 1374 閱讀 4137

最近在專案中使用了entity framework 4.1,語句查詢全部都是用linq和lambda表示式完成,但是有幾個頁面查詢比較複雜,用到了多個條件彙總和列值的判斷,如果用linq來寫語句相當複雜,還未必能實現想要的結果,最終只能選擇oracle的儲存過程來完成,因為需要傳入引數執行查詢返回結果集。

在使用ef呼叫執行儲存過程獲取游標集合,試驗琢磨了幾天也未能實現,最終只能採取.net的客戶端驅動或者oledb連線oracle實現儲存過程的呼叫,最終獲取到的集合也只能是dataset或者datatable,還必須要轉換成實體物件list<>。

儲存過程執行方法:

1

///2

///執行儲存過程

3/// 4

///儲存過程名 5

///儲存過程引數 6

///dataset結果中的表名 7

///dataset 8

public

static dataset runprocedure(string storedprocname, idataparameter parameters, string

tablename)

920 }

datatable轉換list方法:

1

class converthelperwhere t : new

() 2

39}

40//

物件新增到泛型集合中

41ts.add(t);

42}

4344

return

ts;

4546

} 47 }

呼叫儲存過程:

1

public listselsum(string startdate,string

enddate)2;

8 parms[0].value =startdate;

9 parms[1].value =enddate;

10 parms[2].direction =parameterdirection.output;

11 dataset ds = orahelper.runprocedure("

pro_ljhz

", parms, "ds"

);12 listlist1 = converthelper.converttolist(ds.tables[0

]);13

return

list1;

14 }

有沒有高手知道ef呼叫儲存過程的方法,在此指導一下!

歡迎各路高手在此留下腳印,共同**與分享~~~

執行Oracle儲存過程返回游標結果集

create or replace package returncursor is type cur cj is ref cursor procedure find emp out cur cj end returncursor create or replace package body retu...

Oracle儲存過程返回游標

oracle儲存過程返回游標 有倆種方法 一種是宣告系統游標,一種是宣告自定義游標,然後後面操作一樣,引數型別為 in out 或out 1 宣告個人系統游標.推薦 create or replace p temp procedure cur arg out sys refcursor 方法1 be...

oracle 儲存過程返回游標

示例,很多時候我們需要返回結果集,這個時候,我們就可以返回游標的方式給別人呼叫 create or replace procedure getprocontactinfowithpropid prop id in varchar2,outcursor out sys refcursor isbegi...