我一直在使用以下方法在EF core 2.1中调用存储过程
在DBContext中
public DbQuery<SomeModel> SomeModels { get; set; }
班级
var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();
我正在尝试创建一个通用方法来执行所有存储过程,这样就不必在每次调用存储过程时都将模型附加到上下文中。我正在寻找类似我下面的内容(忽略语法)。请指教。
public Response SoftDelete<T>(T entity) where T : class
{
var result = context.<T>.FromSql("SQL_SCRIPT").ToList();
}
答案 0 :(得分:0)
试试下面的代码。
var result = context.Set<T>().FromSql("SQL_SCRIPT").ToList();
答案 1 :(得分:-1)
您可以调用await _databaseContext.Database.ExecuteSqlCommandAsync(storedProcedureName);
或await _databaseContext.Database.ExecuteSqlQuery
方法来运行查询或存储过程。您只需要在使用DBContext的任何地方将其注入类即可。
参考:
https://msdn.microsoft.com/en-us/library/system.data.entity.database.sqlquery(v=vs.113).aspx