Benim veritabanına Düzenle kaydetmek istiyorum ve ASP.NET MVC 3 / C # varlık FrameWork kod ilk kullanıyorum ama hata alıyorum. Event sınıfımda DateTime ve TimeSpan veri türlerine sahibim ancak veritabanımda sırasıyla Tarih ve saat var. Nedeni bu olabilir mi? Veritabanındaki değişiklikleri kaydetmeden önce koddaki uygun veri tipine nasıl başvurabilirim.
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; }
}
Denetleyicideki yöntem >>>> storeDB.SaveChanges () sorunu
// 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 Formu
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ı
Bir veya daha fazla varlık için doğrulama başarısız oldu. Daha fazla ayrıntı için 'EntityValidationErrors' özelliğine bakın.
Açıklama: Geçerli web isteğinin yürütülmesi sırasında işlenmeyen bir özel durum oluştu. Hata ve kodun nereden kaynaklandığı hakkında daha fazla bilgi için lütfen yığın izlemesini inceleyin.
Özel Durum Ayrıntıları: System.Data.Entity.Validation.DbEntityValidationException: Bir veya daha fazla varlık için doğrulama başarısız oldu. Daha fazla ayrıntı için 'EntityValidationErrors' özelliğine bakın.
Kaynak Hatası:
Line 75: if (TryUpdateModel(theEvent))
Line 76: {
Line 77: storeDB.SaveChanges();
Line 78: return RedirectToAction("Index");
Line 79: }
Kaynak Dosya: C: \ sep \ MvcEventCalendar \ MvcEventCalendar \ Controllers \ EventManagerController.cs Satır: 77
Yığın izleme:
[DbEntityValidationException: Bir veya daha fazla varlık için doğrulama başarısız oldu. Daha fazla ayrıntı için 'EntityValidationErrors' özelliğine bakın.]