[英]Multiple Select result and Linq to Entities
我有一個返回未知數據量的SP,這是我的查詢示例:
MySP:
WHILE (@counter <= @SomeParameter)
BEGIN
Select *
From tblFoo
Where tblFoo.Counter=@counter
@counter=@counter+1
END
為了有效地存儲數據,我想使用DataSet,它將每個Selects的結果存儲在每個DataTable中。
由於我的應用程序是基於EF 5的,因此我嘗試使用dbContext
對象調用SP,這是我嘗試執行的操作。
var ds=db.Database.SqlQuery<DataSet>("MySP @counter @SomeParameter", value1,value2);
這似乎無法正常工作。
我考慮過使用經典的ADO.NET解決此問題,並使用SqlDataAdapter
,但是我不確定如何將原始Connection引用從dbContext
傳遞給SqlDataAdapter
dbContext
屬性,因為它的類型不同。
注意:在此問題上,我使用DataSet而不是Entities Collection的原因是因為我從SP獲得的結果可能具有不同的列,因此我不確定Entities Collection是否會這樣做。
我想知道如何使用實體(或SqlAdapter)調用SP來用SP中每個Select的結果填充DataSet中的每個表。
我在EF嶄露頭角,因此,如果我在思考或做任何錯誤的事情,任何小費都可以申請。
您可以嘗試使用此代碼-基於SqlDataAdapter
類
var connectionString = "...";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
var cmd = new SqlCommand("YourSP", connection);//Adjust your stored procedure name
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@SomeParameter", YourValue));//Adjust your value
adapter.SelectCommand = cmd;
adapter.Fill(dataset);
return dataset;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.