先上二个表的图:
文章表:
TAG表:我在文章表中也留了Tag列,这样方便调用。下面是添加文章时的控制器部份代码,我的意思是这样,在db.SaveChange()后从Tag列得到一个tag的一个数组,得到文章的ID,然后调用AddTag这个方法。

db.Articles.Add(newArticle);
         db.SaveChanges();
         string[] tag = newArticle.Tag.Split(',');
         int articleid = newArticle.ArticleID;
         string articleidd = articleid.ToString();
         string tagname1 = "";
         for (int i = 0; i <= tag.Length-1; i++)
               {
                   tagname1 = tag[i];
                   AddTag(articleidd, tagname1, 1);
               }
          return RedirectToAction("Index","Home");添加Tag的方法public void AddTag(string articleid,string tagname,int usenum)
        {
            Tag tag = new Tag() { ArticleIDCollection=articleid,TagName=tagname,TagUseNum=usenum};
            db.SaveChanges();
        }可是,我目前做下来,在表Articles中己有数据了,在表TAGS中不会保存每个TAG,数据库中是空的。
而我要具体实现的功能是这样的大家看我的图,应该能明白这个功能了吧。求解,为什么在表Tags中没有数据。

解决方案 »

  1.   

    是不是这个添加TAG的方法有问题?
      

  2.   

    是不是这个添加TAG的方法有问题?每天回帖即可获得10分可用分
      

  3.   

     string[] tag = newArticle.Tag.Split(','); 你 确定数组长度不为0???
      

  4.   

    通过断点测试,运行到tagname1 = tag[i];这里,能取到各个tag的值。
      

  5.   

    public void AddTag(string articleid,string tagname,int usenum)
            {
                Tag tag = new Tag() { ArticleIDCollection=articleid,TagName=tagname,TagUseNum=usenum};
                db.SaveChanges();
            }
    db.Tags.Add(tag);???
      

  6.   

    试了用db.Tags.Add(tag);也是一样问题,保存不了。
      

  7.   

    db.SaveChanges();
    =>
    db.tags.InsertOnSubmit(tag);
    db.SaveChanges();
      

  8.   

    没有这个InsertOnSubmit啊,为何?
      

  9.   

    谢谢大家,问题解决了,主要问题在这里。
    db.Tags.Add(tag);
    db.SaveChanges();
    用这样就可以了。舒服,接下去可以写其它的判断了。
      

  10.   

    再更正一个错误,for里面的是i <= tag.Length不是i <= tag.Length-1