EF切EFCore2 0儲存過程問題

2022-06-10 19:39:19 字數 1209 閱讀 6976

在從ef切換成efcore2.0的過程中,遇到了儲存過程的實現問題。

在ef中呼叫儲存過程,非常方便,能夠直接將結果轉換成對應的結果類。

如**中的database.sqlquery()    

public

virtual listgetstatsplancompleteandadjustitem(datetime minexecutedate, datetime maxexecutedate, guid organizationid)

public ienumerablesqlquery(string sql, params

object

parameters)

然而,在ef core2.0中還沒有實現儲存過程的呼叫,沒有sqlquery方法。

查詢網上基本採用rawsql的方式來實現。but有侷限,需要用dbcontext中的dbset.fromsql方法,返回值是list,為啥要借用dbset呢,這個方法純粹借用表查詢的方法,好多儲存過程返回的未必是entity,不能將儲存過程的結果轉換成自己想要的資料型別,所以非常棘手。感覺 不是efcore呼叫 儲存過程的思路。

using (var datacontext = new

sampledbcontext()) ");

var result =query.tolist();

assert.notnull(result);

}

採用第二思路,用傳統的sqlcommand方法,執行儲存過程,利用executereader讀取結果後,採用反射將資料轉換成想要的泛型結果

作為積極吃ef core這個螃蟹的人,積極記錄分享這個筆記,供其他朋友參考。感覺給力的話,贊助點紅包哈

public virtual listgetperformanceplancompleteandadjustitem(datetime minexecutedate, datetime maxexecutedate, guid organizationid)

public ienumerablesqlquery(string sql, params object parameters) where telement:new () 

}data.add(item);

}dr.dispose();

return data;

}}

ef mysql 儲存過程 EF 儲存過程

one 理論 a 定義 儲存過程 stored procedure 是一組為了完成特定功能的sql語句集合,經編譯後儲存在伺服器端的資料庫中,利用儲存過程可以加速sql語句的執行。儲存過程分為系統儲存過程和自定義儲存過程。1.系統儲存過程在master資料庫中,但是在其他的資料庫中可以直接呼叫,並且...

EF 呼叫儲存過程

1.執行返回表型別的儲存過程 主表從表資料一起關聯查詢 alter proc dbo getcategory cidint asbegin select fromcategories where cid cid end 執行此儲存過程的 如下 public ienumerablegetcategor...

EF呼叫儲存過程

1 無引數查詢 var model db.database.sqlquery select from userinfoes tolist 2 有參查詢 var model db.database.sqlquery select from userinfoes where id id new sqlp...