2016-08-21 77 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表。