2013-08-16 39 views
0

我在VS 2012中使用EF 5。我尝试将新记录保存到表中,但未保存在表中,也没有引发错误。请帮忙 。我附上我的代码。EF 5在调用保存更改时未保存更改

using (TestEntities context = new TestEntities(new TestEntityConnectionManager("Testconn").ConnectionString)) 
      { 
       var newCan = new Can 
       { 
        CanGUID = new Guid(canGuid), 
        CanName = canName, 
        CanDescription = canDescription, 
        DesignCandidateID = designCandidateId, 
        MigrationDataXml = migrationDataXml, 
        PersonID = 1, 
        LastModifiedPersonID = 1, 
        CreationDate = DateTime.Now, 
        LastModifiedDate = DateTime.Now, 

       }; 
       context.Cans.AddObject(newCan); 
       var paramOut = context.SaveChanges(); 
       retval = paramOut.ToString(); 
+0

你能展示整个方法吗?我没有看到任何明显的,其他似乎你使用ObjectContext版本,并建议使用DbContext。 – Justin

+0

嗨贾斯汀,这个方法中没有其他的东西,方法有一些参数,我把它作为值传递给新的newCan类,如上面在我的代码片段中所示 –

+0

把它放到try catch中,请告诉我们什么是异常 – kkocabiyik

回答

0

这看起来不正确,

var paramOut = context.SaveChanges();

应该在你的[HttpPost]方法,通过if (ModelState.IsValid)

[HttpPost] 
public ActionResult Create(CLASS Model) 
{ 
     if (ModelState.IsValid) 
     { 
       db.Table.Add(Model); 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
     } 
     return View(Model); 
} 
0

包围。如果没有错误发生并且没有数据被保存,该问题必须在您的连接字符串中。

事实上,你的conStr似乎并没有连接到你想要的数据库!并且db初始化程序会创建一个新数据库(因为您的自定义conStr)并将数据保存在其中。