在 EntityFramework Core 呼叫預存程序
使用資料庫,為了效能的考量下,有時候使用預存程序。而在 EntityFramework Core 中,呼叫預存程序稍微有點麻煩,但其實也只是把呼叫預存程序的 SQL 語法填入而已。
以下連結為本篇文章的範例位置:
以下是呼叫的方式,其實就是呼叫 FromSqlRaw:
public IQueryable<T> ExecStoreProcedure(string storeProcedureRawSql, object[] parameters)
{
IQueryable<T> result = null;
if (parameters == null)
{
result = _currentDbContext.Set<T>().FromSqlRaw(storeProcedureRawSql);
}
else
{
result = _currentDbContext.Set<T>().FromSqlRaw(storeProcedureRawSql, parameters);
}
return result;
}
使用方式:
public List<Customers> GetCustomersBySP()
{
//exec [dbo].[CustOrderHist] @CustomerID = N'BOTTM'
List<Customers> customers = null;
customers = _customersRepository.ExecStoreProcedure("exec [dbo].[MyTest] @Num = {0};", new object[] { 5 }).ToList();
return customers;
}