![](/img/trans.png)
[英]How to return multiple SELECT sets from a stored procedure using FromSqlRaw Entity Framework Core 3.1
[英]select multiple rows from a stored procedure using entity data model
我希望存儲過程返回多行,並且我正在使用實體數據模型。 我也想檢索作為輸出給出的所有行的列的值。
我已經使用SqlDataReader
, SqlCommand
和SqlConnection
進行了此操作。
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);
我如何通過存儲過程和使用實體數據模型創建函數導入來完成相同的工作?
有幾個步驟可以做到這一點,我相信這是迄今為止可以實現的最佳教程,可以在線找到。
http://msdn.microsoft.com/en-us/data/gg699321.aspx
您基本上必須創建一個新的復雜類型,因為您要從多個表中進行選擇,我相信本教程中有一個有關如何執行此操作的示例。 基本上,您將在列表中返回一組值,然后可以從列表中讀取每個值/對象
您可以將存儲過程添加為實體框架對象模型中的函數導入,同時添加存儲過程將要求您返回類型...以便可以生成復雜的自定義實體。 在與存儲過程進行通信時,它將從實體框架中獲取數據並將其添加到自定義實體中,這樣當您創建實體對象時,您將從表中獲得多行信息,並獲得另外一點,然后您將獲得設置函數的名稱.ToLIst()至計算結束,因此它將返回結果集列表。
即
實體團隊合作:親密關系
創建實體的對象:abventity abc = new abcentity();
調用SP函數:var結果= abc.SPCall(parmaeters).tolist();
結果,您將從存儲過程中獲得結果列表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.