在使用存储过程检索结果时,如何在.net核心的视图模型中检索和存储多个结果集
例如,从存储过程我返回两个以下查询的记录
Select * LMS_Survey
Select * from LMS_SurveyQuestion
Select * from LMS_SurveyQuestionOptionChoice
Run Code Online (Sandbox Code Playgroud)
以下是两个表的视图模型
public class LMS_SurveyTraineeViewModel
{
public LMS_SurveyDetailsViewModel SurveyDetailsViewModel { get; set; }
public LMS_SurveyQuestionsViewModel SurveyQuestionsViewModel { get; set; }
public LMS_SurveyQuestionOptionChoiceViewModel SurveyQuestionOptionChoiceViewModel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这就是我执行存储过程的方式
public List<LMS_SurveyTraineeViewModel> GetTraineeSurvey(int surveyID)
{
try
{
List<LMS_SurveyTraineeViewModel> modelList = new List<LMS_SurveyTraineeViewModel>();
modelList = dbcontext.Set<LMS_SurveyTraineeViewModel>().FromSql("LMSSP_GetTraineeSurvey @surveyID = {0},@LanguageID = {1}", surveyID, AppTenant.SelectedLanguageID).ToList();
return modelList;
}
catch (Exception ex)
{
throw ex;
}
}
Run Code Online (Sandbox Code Playgroud)
如何在视图模型中使用存储过程存储多个结果集?
我有一个项目需要查询数据库并将结果返回到 web api。有几个存储过程是由 DB Admin 即时创建的,它们有一个 UI,用于创建存储过程的定义和它的名称,Web api 服务只调用该 SP 并应该返回结果。根据下面的代码,我无法将返回对象返回到 web api 控制器,因为对象包含项目但没有映射属性。
var result = dbContext.Query<object>().AsNoTracking().FromSql(
"dbo.MY_SP @DateFrom=@DateFrom, @DateTo=@DateTo",
dateFromParam, dateToParam).ToList();
Run Code Online (Sandbox Code Playgroud)