2012-12-24 57 views
0

我想要一個存儲過程返回多行,我正在使用實體數據模型。此外,我想檢索所有行的列作爲輸出的值。使用實體數據模型從存儲過程中選擇多行

我已經使用SqlDataReader,SqlCommandSqlConnection做過這件事。

SqlCommand cmd = new SqlCommand("select leave_details,LID,from_date,to_date from LeaveTable where E_ID=1 and from_date<@toDate and to_date>@fromDate", con); 
cmd.Parameters.Add("@toDate", System.Data.SqlDbType.Date); 
cmd.Parameters["@toDate"].Value = to_date; 
cmd.Parameters.Add("@fromDate", System.Data.SqlDbType.Date); 
cmd.Parameters["@fromDate"].Value = from_date; 
con.Open(); 

obj = cmd.ExecuteReader(); 

,我可以使用obj.read()通過遍歷行。

,我可以利用讀取特定列的值

leave_id = (int)obj.GetValue(1); 

我怎樣才能得到一個存儲過程,並創建一個使用實體數據模型函數導入做同樣的事情?

回答

1

有幾個步驟來做到這一點,我相信這是迄今爲止實現這一目標的最好的教程可以在網上找到

http://msdn.microsoft.com/en-us/data/gg699321.aspx

你基本上要創建一個新的複雜的類型,因爲你選擇從幾個表我相信這個教程有一個如何做到這一點的例子。基本上你會返回一個列表中的值,然後你可以讀取每個值/對象從alist

+0

我發現這一個更有用 - http://thedatafarm.com/blog/data-access/a-big-step-for-stored-procedures -in-EF4 / – akshaykumar6

0

你可以添加存儲過程作爲函數導入實體框架對象模型,而添加它會問你返回類型.. 。因此它可以生成複雜的自定義實體。當與商店程序通信時,它將從實體商品店獲取數據&將其添加到自定義實體中,這樣您將從表&獲得多行,當您創建實體對象時,您將獲得我們所設置的函數的名稱.ToLIst()到它的calaling結束,所以它會返回結果集列表。

實體團隊:abcentity

創建實體的對象:abventity ABC =新abcentity();

調用SP函數:var Result = abc.SPCall(parmae​​ters).tolist();

的結果,你會得到結果的列表,從存儲過程

相關問題