我正在尝试使用Entity Framework将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; }
}
答案 0 :(得分:0)
确保将TrnDate值设置为值。您可以先打印出TrnDate值,或者设置一个断点来查看它的值。
将此值插入非可空日期时间字段可能会导致此异常。
答案 1 :(得分:0)
由于各种原因,您可能会收到此错误,即未从代码或输入的日期向DateTime传递正确的值(或空值)不符合为列指定的类型的日期范围。 检查从实体传递到数据库的确切值。
您可以参考以下帖子以供参考: