Я создаю сайт ASP.NET MVC 3 с использованием подхода Entity Framework 4, основанного на коде. В моей модели есть один объект Problem, который содержит дочернюю коллекцию другого объекта модели, ProblemRating. В настоящее время у меня есть Модель проблемы, настроенная следующим образом:
public class ProblemModel
{
[Key]
[Required]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ProblemId { get; set; }
[Display(Name = "Creator")]
[Required]
public string UserName { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string ProblemDescription { get; set; }
[Required]
public string InputDescription { get; set; }
[Required]
public string InputSample { get; set; }
[Required]
public string OutputDescription { get; set; }
[Required]
public string OutputSample { get; set; }
public virtual IEnumerable<ProblemRatingModel> Ratings { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime LastModifiedDate { get; set; }
}
Класс ProblemRating довольно прост:
public class ProblemRatingModel
{
[ForeignKey("AssociatedProblem")]
public int AssociatedProblemId { get; set; }
public ProblemModel AssociatedProblem { get; set; }
public string UserName { get; set; }
public decimal Rating { get; set; }
}
Стандартный код в методе Create контроллера не сообщает о допустимой модели, когда я заполняю поля и нажимаю «Create»:
if (ModelState.IsValid)
{
db.ProblemModels.Add(problemmodel);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(problemmodel);
Как правильно обрабатывать дочерние коллекции модели внутри другого модельного класса? Я не уверен на 100% в использовании атрибута ForeignKey, правильно ли я его использую?
Спасибо!