2013-12-15 27 views
1

我想保存對數據庫使用EntityFramework的更改,但是我得到一個null excpetion錯誤,但我知道數據不爲空。ArgumentNullException當保存到數據庫

public partial class Model1 
{ 
    public int ID { get; set; } 
    public string Code { get; set; } 
    public bool Compulsary { get; set; } 
    public string Year { get; set; } 
} 



    private Entity db = new Entity(); 
[HttpPost] 
    public ActionResult Add(string code) 
    { 

     HttpCookie cookie = Request.Cookies["Login"]; 
     int ID = int.Parse(cookie["ID"]); 
     Model1 model1 = new Model1 
     { 
      ID = ID, 
      Code = code, 
      Compulsary = false, 
      Year = "P2" 
     }; 

     db.Model1.Add(model1); 
     db.SaveChanges(); 

     return View(); 
    } 

當它到達db.SaveChanged然後我得到一個錯誤。

+0

剛剛添加到代碼中。 – user1938460

+0

在這種情況下來自實體框架的'ArgumentNullException'通常意味着數據庫中需要的字段在您的模型中爲null。異常是否有InnerException? – CodeCaster

+0

@CodeCaster你是對的。 –

回答

0

從這裏看來,代碼屬性可能是錯誤的。

int ID = int.Parse(cookie["ID"]); 

如果上述線路出現故障,則在該線路上將失敗。除Code外,其餘屬性都是硬編碼的。您可能會將帖子中的空值返回到數據庫中的一個(可能)不可空字段中。

可能的原因是帖子變量命名。檢查以確保它們是相同的名稱。

+0

硬編碼的數字,而不是使用變量ID,仍然沒有運氣,相同的錯誤。 – user1938460

+0

只注意到Model1是一個部分類。是否有另一套我們看不到的屬性? – smd

+0

對不起,遲到的迴應消失了。那麼Model1就是由ADO.net生成的。如果有幫助?我不知道其他屬性可能是什麼。 – user1938460