2010-05-03 80 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();