[英]Entity Framework calling stored procedure
我有一個要從實體框架調用的存儲過程。 結果中返回了三個表。 存儲過程接受兩個參數, UserId
和BlogId
。 我需要打開數據庫和command.ExecuteReader
嗎? 實體框架可以處理多個數據讀取嗎?
public List<Models.BlogInfo> GetBlogListing(int UserId, int BlogId)
{
using (var db = new Entities())
{
using (DbContextTransaction dbTran = db.Database.BeginTransaction())
{
ResultStatus resultStatus = new ResultStatus();
try
{
var cmd = db.Database.Connection.CreateCommand();
cmd.CommandText = "[coi].[usp_Public_Select_GetPanelBlog]";
SqlParameter paramMeetingId = new SqlParameter("@UserId", UserId);
SqlParameter paramGroupId = new SqlParameter("@BlogId", BlogId);
Database.OpenConnection();
using (var result = command.ExecuteReader())
{
}
}
catch (Exception ex)
{
dbTran.Rollback();
}
}
}
}
你能試試這個嗎?
using (var context = new TestEntities())
{
using (var con = context.Database.GetDbConnection())
{
try
{
if (con.State != ConnectionState.Open)
con.Open();
using (var cmd = con.CreateCommand())
{
//postgres
cmd.CommandText = "SELECT * FROM \"USP_Test\"()";
using (System.Data.Common.DbDataReader dr =
cmd.ExecuteReader())
{
var tb = new DataTable();
tb.Load(dr);
var json = JsonConvert.SerializeObject(tb);
var result = JsonConvert.DeserializeObject<List<TestClass>>(json);
return result;
}
}
}
catch (Exception exc)
{
throw exc;
}
finally
{
if (con.State != ConnectionState.Closed)
con.Close();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.