动态检索存储过程的结果

时间:2019-03-25 20:03:16

标签: c# sql entity-framework

我有一个休息端点,如下所示。现在,基于ReportSource名称,我想执行该存储过程。有40个这样的存储过程,我不想为每个存储过程创建实体类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BAService.Dtos
{
    class BARequestDTO
    {
        public int ReportID { get; set; }
        public string ReportName { get; set; }
        public DateTime? AsOfDate { get; set; }
        public string ReportSource { get; set; }
    }
}

这是控制器:

[HttpPost]
[Route("BAReportRequest")]
public string BAReportRequest(BARequestDTO dto)
{
    try
    {
        var test = _bIReportRepositoryBA.RunReport(dto);
    }
    catch (Exception ex)
    {
        _LogService.Error(string.Format("Unable to save data dictionary"), ex);

    }
    return test;
}

我知道执行存储过程的唯一方法是像下面这样调用它。 在这种方法中,我将不得不创建40个新的实体对象,该对象可以从数据库接收结果。我很懒,我正在寻找一种执行存储过程并在json中获取结果而不为每个存储过程创建实体对象的通用方法。

public List<EmployerDashboardDetailsDto> RunReport(BIReportDto dto)
{
    return _DBContext.Database
                    .SqlQuery<usp_EmployerDashboardStatistics>("report.usp_Report1 @exchangeID", new SqlParameter("@exchangeID", dto.ID))
                    .ToList();
}

0 个答案:

没有答案