问题描述
所以我有一个使用实体框架 6 的 mvc 5,我使用了 chinook 数据库。我已经让 mvc 一切正常,我现在必须制作一些 sql 命令,比如从表中显示从 datestart 到 dateend 的 X 记录。我已经创建了 sql 命令,我想将它用作我的 mvc 上的存储过程,但我找不到如何向用户显示
选择INT X
选择日期开始
选择日期
并将他的输入从视图传递到控制器到我的存储过程参数。 我需要通过一些简短的映射来做到这一点吗?
解决方法
假设您有像 ResultSize、DateStart 和 DateEnd 这样的视图模型属性,只需将这些属性映射到存储过程参数:
public ActionResult YourAction(YourViewModel vm)
{
using (var ctxt = new YourDBContext())
{
var yourResultSet = ctxt.Database.SqlQuery<YourViewModel>("EXEC YourSP @param1,@param2,@param3",vm.ResultSize,vm.DateStart,vm.DateEnd).Select(s => new YourViewModel
{
//YourViewModel properties from database code here
DateStart = s.DateStart,//rest of code
}).ToList();
}
}
希望我已经回答了您的问题。