2010-05-08 120 views
0

代碼實體:不能添加已經存在

public ActionResult Create(Group group) 
    { 
     if (ModelState.IsValid) 
     { 
      group.int_CreatedBy = 1; 
      group.dtm_CreatedDate = DateTime.Now; 
      var Groups = Request["Groups"]; 
      int GroupId = 0; 
      GroupFeature GroupFeature=new GroupFeature(); 
      foreach (var GroupIdd in Groups) 
      { 
      // GroupId = int.Parse(GroupIdd.ToString()); 


      } 
      var Features = Request["Features"]; 
      int FeatureId = 0; 
      int t = 0; 
      int ids=0; 

      string[] Feature = Features.Split(',').ToArray(); 
      //foreach (var FeatureIdd in Features) 
      for(int i=0; i<Feature.Length; i++) 
      { 
       if (int.TryParse(Feature[i].ToString(), out ids)) 
       { 

        GroupFeature.int_GroupId = 35; 

        GroupFeature.int_FeaturesId = ids; 
        if (ids != 0) 
        { 
         GroupFeatureRepository.Add(GroupFeature); 
         GroupFeatureRepository.Save(); 
        } 
       } 

      } 




      return RedirectToAction("Details", new { id = group.int_GroupId }); 

     } 
     return View(); 
    } 

在這裏,我得到一個錯誤,無法添加已經存在的實體。在這一行GroupFeatureRepository.Add(GroupFeature); GroupFeatureRepository.Save();

+0

我將如何在這裏保存多對多的關係 – maztt 2010-05-08 13:54:30

回答

3

這條線:

GroupFeature GroupFeature=new GroupFeature(); 

需要在裏面你的for循環,像這樣:

for(int i=0; i<Feature.Length; i++) 
{ 
    if (int.TryParse(Feature[i].ToString(), out ids)) 
    { 
    GroupFeature GroupFeature=new GroupFeature(); 

你需要一個新的GroupFeature每次增加(例如,一個不是集合中 ,你的重用對象已經在第一個循環之後)。您不能重複使用與添加相同的對象GroupFeature,但在循環內部移動它,因此每次生成不同的GroupFeature將解決此問題。

相關問題