我是 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 运行原始 SQL 查询,我应该能够将结果映射到 IEnumerable 中。 EFCore 中似乎没有 SqlQuery。请帮助我找到实现该功能的替代方法。 .提前致谢。
注意:在这里,T 不是DbSet 类。它是一个ViewModel,它具有来自多个表的字段的组合。
最佳答案
根据 Entity Framework 核心文档,您可以使用 Query().FromSql(sql) 方法。
public IEnumerable<T> ExecuteSQL<T>(string sql) where T : class
{
return context.Query<T>().FromSql(sql).ToList();
}
更多详情 Explained here
关于c# - 如何使用 EntityFrameworkCore 运行原始 SQL 查询并将结果映射到 IEnumerable<T> 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55658093/