Je veux enregistrer mon montage à la Base de données et je suis en utilisant Entity FrameWork Code First dans ASP.NET MVC 3 / C# mais j'obtiens des erreurs. Dans ma classe d'Événements, j'ai DateTime et TimeSpan types de données, mais dans ma base de données, j'ai la Date et l'heure, respectivement. Serait-ce la raison? Comment puis-je convertir à l'appropriées type de données dans le code avant d'enregistrer les modifications apportées à la base de données.
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; }
}
Méthode dans le contrôleur >>>> Problème à 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);
}
}
avec
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 Base de données / T-SQL
EventDate (Datatype = date).
StartTime (Datatype = temps)
EndTime (Datatype = temps)
Http Formulaire
EventDate (Datatype = DateTime) ex: 4/8/2011 12:00:00 AM
StartTime (Datatype = plage de Temps/temps pas sûr), par exemple, 08:30:00
EndTime (Datatype = plage de Temps/temps pas sûr), par exemple, 09:00:00
Erreur de serveur dans l'Application'/'.
La Validation a échoué pour une ou plusieurs entités. Voir " EntityValidationErrors la propriété pour plus de détails.
Description: Une exception non gérée s'est produite pendant l'exécution de la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et où elle a son origine dans le code.
Détails De L'Exception: System.Les données.De l'entité.La Validation.DbEntityValidationException: la Validation a échoué pour une ou plusieurs entités. Voir " EntityValidationErrors la propriété pour plus de détails.
Source De L'Erreur:
Line 75: if (TryUpdateModel(theEvent))
Line 76: {
Line 77: storeDB.SaveChanges();
Line 78: return RedirectToAction("Index");
Line 79: }
Fichier Source: C:\sep\MvcEventCalendar\MvcEventCalendar\Controllers\EventManagerController.cs Ligne: 77
Trace De La Pile:
[DbEntityValidationException: la Validation a échoué pour une ou plusieurs entités. Voir " EntityValidationErrors la propriété pour plus de détails].