Doğrulama Sunucu Veritabanı Varlık Çerçevesi kullanarak SQL değişiklikleri kaydetme sırasında bir veya daha fazla varlıkları için başarısız oldu
Benim Veritabanına kayıt etmek istiyorum ve 3 / C ASP.NET MVC Kod-İlk Varlık Çerçevesi kullanıyorum fakat hata alıyorum. Olay sınıfta, tarih ve zaman aralığı veri var ama benim veritabanında, sırasıyla Tarih ve saat var. Bu neden olabilir? Nasıl veritabanı değişiklikleri kaydetmeden önce bu kodu uygun veri türü için döküm.
public class Event
{
public int EventId { get; set; }
public int CategoryId { get; set; }
public int PlaceId { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
public DateTime EventDate { get; set; }
public TimeSpan StartTime { get; set; }
public TimeSpan EndTime { get; set; }
public string Description { get; set; }
public string EventPlaceUrl { get; set; }
public Category Category { get; set; }
public Place Place { get; set; }
}
Kontrol yöntemi ^<<< . StoreDB de sorun.() SaveChanges;
// POST: /EventManager/Edit/386
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
var theEvent = storeDB.Events.Find(id);
if (TryUpdateModel(theEvent))
{
storeDB.SaveChanges();
return RedirectToAction("Index");
}
else
{
ViewBag.Categories = storeDB.Categories.OrderBy(g => g.Name).ToList();
ViewBag.Places = storeDB.Places.OrderBy(a => a.Name).ToList();
return View(theEvent);
}
}
ile
public class EventCalendarEntities : DbContext
{
public DbSet<Event> Events { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<Place> Places { get; set; }
}
SQL Server 2008 R2 Veritabanı / T-SQL
EventDate (Datatype = date)
StartTime (Datatype = time)
EndTime (Datatype = time)
Http Form
EventDate (Datatype = DateTime) e.g. 4/8/2011 12:00:00 AM
StartTime (Datatype = Timespan/time not sure) e.g. 08:30:00
EndTime (Datatype = Timespan/time not sure) e.g. 09:00:00
'/' Uygulamasında sunucu Hatası
Doğrulama, bir veya daha fazla varlıkları için başarısız oldu. Daha fazla özellik. EntityValidationErrors bakın
Açıklama: işlenmeyen Bir özel durum geçerli web isteği yürütülürken oluştu. Bu hata hakkında daha fazla bilgi için yığın izlemesini gözden geçirin ve kod içinde kaynaklandığı yer.
Özel Durum Ayrıntıları: System.Veri.Varlık.Doğrulama.DbEntityValidationException: Doğrulama, bir veya daha fazla varlıkları için başarısız oldu. Daha fazla özellik. EntityValidationErrors bakın
Kaynak Hatası:
Line 75: if (TryUpdateModel(theEvent))
Line 76: {
Line 77: storeDB.SaveChanges();
Line 78: return RedirectToAction("Index");
Line 79: }
Kaynak Dosya: Satır C:\sep\mvceventcalendar\mvceventcalendar\controllers\eventmanagercontroller.cs : 77
Yığın İzleme:
[DbEntityValidationException: Doğrulama, bir veya daha fazla varlıkları için başarısız oldu. 'EntityValidationErrors' özelliği için daha fazla bilgi için bakınız
CEVAP
Aşağıdaki kodu DbEntityValidationException
(ad eklemek gerekir: System.Data.Entity.Validation
using
listesine System.Diagnostics
) tüm bilgileri ayıklayın:
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}",
validationError.PropertyName,
validationError.ErrorMessage);
}
}
}
Doğrulama, bir veya daha fazla varlıkl...
Kısıtlamaları etkinleştirmek için başa...
MVC3 kullanarak Varlık Çerçevesi için ...
Doğrulama başarısız oldu geçersiz veya...
Hata mesaj 'istenen türde bir vey...