0
当添加/更新父项时,我看到了有关向子项添加值的一些问题和解答,但我的问题恰恰相反。 我有父子关系的模型组件:将值添加到Parent时,将值添加到子MVC
public class Component
{
public virtual int ComponentId { get; set; }
public virtual string Type { get; set; }
public virtual string Name { get; set; }
public virtual Course Course { get; set; }
public virtual int ParentId { get; set; }
public virtual Component Parent { get; set; }
public virtual List<Component> Childs { get; set; }
public virtual List<Evaluation> Evaluations { get; set; }
}
,我需要给一个年级每个孩子给每个用户。 我有这样的模式:
public class Evaluation
{
public virtual int EvaluationId { get; set; }
public virtual int ComponentId { get; set; }
public virtual Component Component { get; set; }
public virtual int UserCourseId { get; set; }
public virtual UserCourse User { get; set; }
public virtual int Grade { get; set; }
}
和得到一个组件选择,并允许选择用户,并给了一个档次的视图。只允许给最后一个孩子打分,而他们的父母成绩与孩子的成绩相同(意大利将来有更多的孩子,而且父母的成绩是他们成绩的总和) )。所以我需要在数据库上创建一个具有相同等级的新行,但选择了组件的父ID。 我想这个代码,但它不工作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Evaluation evaluation)
{
if (ModelState.IsValid)
{
if (evaluation.Component.ParentId != 0)
{
var nota = new Evaluation
{
ComponentId = evaluation.Component.ParentId,
UserCourseId = evaluation.UserCourseId,
Grade = evaluation.Grade
};
db.Evaluations.Add(nota);
db.SaveChanges();
}
db.Evaluations.Add(evaluation);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(evaluation);
}
(注意,这个代码可以并且可能是完全错误的) 我怎样才能做到这一点? 谢谢