2014-06-25 46 views
-1

我正嘗試使用實體框架將數據從ASP.Net Web API應用程序插入到數據庫中。但我得到一個例外:不能使用實體框架插入數據

An exception of type 'System.Data.Entity.Infrastructure.DbUpdateException' occurred in EntityFramework.dll but was not handled in user code. 

當該方法激發時發生異常db.SaveChanges(); 這裏是POST方法的代碼:

public HttpResponseMessage PostTransaction(Transaction transaction) 
{ 
    if (ModelState.IsValid) 
    { 
     // db.Entry(transaction).State = EntityState.Added; 
     db.Transactions.Add(transaction); 

     try 
     { 
      db.SaveChanges(); 
     } 
     catch (DbUpdateConcurrencyException) 
     { 
      return Request.CreateResponse(HttpStatusCode.NotFound); 
     } 

     HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, transaction); 
     response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = transaction })); 

     return response; 
    } 
    else 
    { 
     return Request.CreateResponse(HttpStatusCode.BadRequest); 
    } 
} 

這裏是模型:

public partial class Transaction 
{ 
    public int TrnID { get; set; } 
    public string TrnSubject { get; set; } 
    public int TrnCategoryID { get; set; } 
    public DateTime TrnDate { get; set; } 
    public int TrnAccount { get; set; } 
    public bool TrnType { get; set; } 
    public decimal TrnAmount { get; set; } 
} 
+1

錯誤消息是什麼做,如果你調試你?什麼是不更新的原因? –

+0

你不是想編輯已有的項目嗎?如果是,那麼你應該在實際更新之前調用** Attach **。 –

+0

我試圖插入新項目 – MohamedAbbas

回答

0

確保TrnDate值設置爲一個值。您可以先打印出TrnDate值,或者放置一個斷點來查看它的價值。

此異常可能是由於將空值插入到不可空的日期時間字段中造成的。