2016-08-21 144 views
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); 
} 

(注意,这个代码可以并且可能是完全错误的) 我怎样才能做到这一点? 谢谢

回答

0

创建nota后创建一个Component。是这样的:

var nota = new Evaluation 
       { 
        ComponentId = evaluation.Component.ParentId, 
        UserCourseId = evaluation.UserCourseId, 
        Grade = evaluation.Grade 
       }; 

    var component= new Component(); 
    component.add(nota); 
    db.Components.Add(component); 
    db.SaveChanges(); 

你应该看到,由于父子关系的nota也加入到Evaluation表。