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);
}
(注意,這個代碼可以並且可能是完全錯誤的) 我怎樣才能做到這一點? 謝謝