c# - 如何在 Entity Framework Core 中执行 SQL 查询而不修改上下文类

标签 c# sql asp.net asp.net-core entity-framework-core

我正在开发 ASP.net Core 项目。在该项目中,我需要执行 SQL 字符串查询并将结果检索到自定义模型。我尝试使用 context.Database.SqlQuery<ReportModel> 检索查询结果。但是Database.SqlQuery ASP.net Core 不支持。请找到下面给出的我的代码:

        public List<ReportModel> GetReportDetails(string customQuery)
        {
            try
            {
                List<ReportModel> listReportModel = new List<ReportModel>();
                var queryResult = context.Database.SqlQuery<ReportModel>(customQuery);
                foreach (var item in queryResult)
                {
                    listReportModel.Add(item);
                }
                return listReportModel;
            }
            catch (Exception ex)
            {
                throw;
            }    
        }

我还尝试了以下答案 https://stackoverflow.com/questions/35631903/raw-sql-query-without-dbset-entity-framework-core 但是,使用这个解决方案我需要更新我的上下文类。我无法更新我的上下文类。

在 ASP.net Core 3.1 中还有其他方法执行 SQL 字符串查询吗? 任何帮助将不胜感激。谢谢!

最佳答案

您可以使用下面的代码。

var dataFromDB = context.ModelClass.FromSqlRaw("spName {0}", parameter).ToList();

关于c# - 如何在 Entity Framework Core 中执行 SQL 查询而不修改上下文类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62556456/

相关文章:

c# - 根据对象的属性而不是其引用模拟设置返回类型

javascript - Linkbutton 的奇怪行为

mysql - SQL中如何跨表执行范围查询

sql - 在 Oracle 中强制使用索引

c# - 使用 Visual C# 将图像添加到 SQL 数据库

c# - System.Web.Helpers HashPassword 盐和迭代?

c# - resharper 对 asp.net mvc 有问题吗?

c# - 单击第一项时重新填充下拉列表

c# - 在 C# 中,以下语法的作用是什么 : ((Classname)this. variableName).property

c# - 删除 div 之间的间距,bootstrap