편집 내용을 데이터베이스에 저장하고 ASP.NET MVC 3 / C #에서 Entity FrameWork Code-First를 사용하고 있지만 오류가 발생합니다. 내 이벤트 클래스에는 DateTime 및 TimeSpan 데이터 유형이 있지만 데이터베이스에는 각각 Date 및 Time이 있습니다. 이것이 이유가 될 수 있습니까? 변경 사항을 데이터베이스에 저장하기 전에 코드에서 적절한 데이터 유형으로 캐스트하는 방법
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; }
}
제어기의 메소드 >>>> storeDB.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);
}
}
와
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 데이터베이스 / T-SQL
EventDate (Datatype = date)
StartTime (Datatype = time)
EndTime (Datatype = time)
HTTP 양식
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
'/'응용 프로그램에 서버 오류가 있습니다.
하나 이상의 엔터티에 대한 유효성 검사에 실패했습니다. 자세한 내용은 'EntityValidationErrors'속성을 참조하십시오.
설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 발생한 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.
예외 정보 : System.Data.Entity.Validation.DbEntityValidationException : 하나 이상의 엔터티에 대한 유효성 검사에 실패했습니다. 자세한 내용은 'EntityValidationErrors'속성을 참조하십시오.
소스 오류 :
Line 75: if (TryUpdateModel(theEvent))
Line 76: {
Line 77: storeDB.SaveChanges();
Line 78: return RedirectToAction("Index");
Line 79: }
소스 파일 : C : \ sep \ MvcEventCalendar \ MvcEventCalendar \ Controllers \ EventManagerController.cs 줄 : 77
스택 추적 :
[DbEntityValidationException : 하나 이상의 엔티티에 대한 유효성 검증에 실패했습니다. 자세한 내용은 'EntityValidationErrors'속성을 참조하십시오.]