2015-10-30 79 views
0

使用VSPro 2013和SQL Server 2008 R2和第一與數據庫時調用SP。ASP.NET MVC5 EF DATABSE第一 - 保存記錄

我是MVC的新手。我正在開發一個相當簡單和短暫的業務應用程序。最初,這只是相當簡單的CRUD,所以工作得很好。現在我必須調用一個存儲過程來插入一些新數據(SP中有biz邏輯,並由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

,如果它的數據庫,再只需添加程序到你的模型並在'db.savechanges();'後調用它; https://msdn.microsoft.com/en-us/library/vstudio/bb896231(v=vs.100).aspx – JamieD77

+0

@ JamieD77。謝謝。不db.savechanges保存我正在編輯的記錄?我需要用我的SP調用替換默認保存,但不知道MVC – mark1234

回答

1
  • 您.edmx文件雙擊打開它
  • 右鍵單擊打開的窗口,然後選擇「從數據庫更新模型...」。
  • 下添加 選項卡中選擇存儲過程,你需要
  • 單擊Finish

這將其添加爲在C#代碼的功能。

一旦你添加了它,用類似的代碼調用它下面:

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

參見:Calling Stored Procedures from Entity Framework

-κB

+0

謝謝KB。我看到存儲過程,但不知道我在哪裏調用它從 – mark1234

+0

@ mark1234,添加代碼以回答您的評論「我看到存儲過程,但不知道我從哪裏調用它」 –