【问题标题】:How to run the Raw SQL query using EntityFrameworkCore and map the result to the type IEnumerable<T>?如何使用 EntityFrameworkCore 运行 Raw SQL 查询并将结果映射到类型 IEnumerable<T>?
【发布时间】:2019-04-12 19:10:31
【问题描述】:

我是 EntityFramework 核心的新手。我正在将我们现有的 .net framework4.6.1 应用程序移动到 .net core 2。在 EntityFramework 6 中,我们能够运行原始 SQL 查询,并且能够使用下面的代码获取映射到类型 (T) 的值。

public IEnumerable<T> ExecuteSQL<T>(string sql)
{
   return Context.Database.SqlQuery<T>(sql, new object[] { });
}

但是,EFcore 不支持这一点。我想使用 EntityFrameworkCore 运行 Raw SQL 查询,我应该能够将结果映射到 IEnumerable 中。 EFCore 中似乎不存在 SqlQuery。请帮助我找到实现该功能的替代方法。 .提前致谢。

注意: 此处,T 不会是 DbSet 类。它将是具有来自多个表的字段的组合。

【问题讨论】:

  • 我觉得这个链接很有帮助:Raw SQL Query - Entity Framework Core
  • @hassan.ef 非常感谢您的帮助。我真的很感激它。它似乎会起作用。我将实施并在完成后通知您。再次感谢

标签: c# asp.net-core-2.0 entity-framework-core-2.1


【解决方案1】:

根据实体框架核心文档,您可以使用 Query().FromSql(sql) 方法。

public IEnumerable<T> ExecuteSQL<T>(string sql) where T : class
    {
        return context.Query<T>().FromSql(sql).ToList();
    }

更多详情Explained here

【讨论】:

  • 非常感谢!会试一试,让你知道
猜你喜欢
  • 2013-01-14
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
  • 2017-05-13
相关资源
最近更新 更多