ASP.NET MVC5 EF数据库优先 - 保存记录时调用SP

时间:2015-10-30 17:56:26

标签: asp.net-mvc

使用VSPro 2013和SQL Server 2008 R2并首先使用数据库。

我是MVC的新手。我正在开发一个相当简单和短命的业务应用程序。最初,它只是相当简单的CRUD,所以效果很好。现在我必须调用存储过程来插入一些新数据(SP中有商业逻辑,它们由DB人员维护)。

我打算学习如何正确使用repo和UOW,但我必须很快完成这项工作。

现在我的应用程序只是使用脚手架视图,模型和控制器,我修改了一堆视图来显示相关数据等。如何更改提交操作以调用存储过程而不是通常的POST动作:

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "ID,VersionRef,IntJobNo,ImportedFileList,TotalCopies,FormatFileID")] Job job)
        {
            if (ModelState.IsValid)
            {
                db.Jobs.Add(job);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            ViewBag.FormatFileID = new SelectList(db.FormatFiles, "ID", "Name", job.FormatFileID);
            ViewBag.INTJobNo = new SelectList(db.IntJobNos, "JobNo", "JobNo", job.IntJobNo);
            return View(job);
        }

TIA

标记

1 个答案:

答案 0 :(得分:1)

  • 双击.edmx文件将其打开
  • 右键单击打开的窗口,然后选择"从数据库更新模型..."。
  • 根据添加 选项卡选择您需要的存储过程
  • 点击完成

这会将其作为C#代码中的函数添加。

添加后,请使用类似下面的代码进行调用:

var myTableEntities = new MyTableEntities();
var myResult = myTableEntities.StoredProcedureName([Params]);

请参阅:Calling Stored Procedures from Entity Framework

-KB