2013-08-16 88 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)並將數據保存在其中。