2010-05-08 83 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将解决此问题。

相关问题