2010-05-03 58 views
1

我的控制器調用庫插入方法中的所有值都通過,但它不會插在我的表...asp.net的MVC插入似乎並不爲我

我控制器的方法,

[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Create([Bind(Exclude = "Id")]FormCollection collection) 
     { 
      try 
      { 
       MaterialsObj materialsObj = new MaterialsObj(); 
       materialsObj.Mat_Name = collection["Mat_Name"]; 
       materialsObj.Mes_Id = Convert.ToInt64(collection["MeasurementType"]); 
       materialsObj.Mes_Name = collection["Mat_Type"]; 
       materialsObj.CreatedDate = System.DateTime.Now; 
       materialsObj.CreatedBy = Convert.ToInt64(1); 
       materialsObj.IsDeleted = Convert.ToInt64(1); 
       consRepository.createMaterials(materialsObj); 

       return RedirectToAction("Index"); 
      } 
      catch 
      { 
       return View(); 
      } 
     } 
工作

和我的倉庫,

public MaterialsObj createMaterials(MaterialsObj materialsObj) 
{ 
    Material mat = new Material(); 
    mat.Mat_Name = materialsObj.Mat_Name; 
    mat.Mat_Type = materialsObj.Mes_Name; 
    mat.MeasurementTypeId = materialsObj.Mes_Id; 
    mat.Created_Date = materialsObj.CreatedDate; 
    mat.Created_By = materialsObj.CreatedBy; 
    mat.Is_Deleted = materialsObj.IsDeleted; 
    db.Materials.InsertOnSubmit(mat); 
    return materialsObj; 
} 

我在這裏缺少什麼任何建議....

+0

順便說一句,當你覺得無聊寫的'mat.Mat_Name = materialsObj.Mat_Name;',看看Automapper http://automapper.codeplex.com/ – R0MANARMY 2010-05-03 13:35:34

回答

2

據我所見,你錯過了一個db.SubmitChanges();保存到數據庫。

+0

@克里斯哦,上帝我怎麼會錯過! – 2010-05-03 13:25:49

+0

這很容易完成 - 今天早上我有同樣的問題! :-) – Chris 2010-05-03 13:26:42

+0

Linq-to-sql對我來說第一次...再也不要做這個錯誤了...... – 2010-05-03 13:31:48

1
db.Materials.InsertOnSubmit(mat); 
db.SubmitChanges(); // <--------------- 
return materialsObj; 
1

您是不是錯過了致電SubmitChanges

db.Materials.InsertOnSubmit(mat); 
db.SubmitChanges();