Model view controller 通过重新关联多对多在实体框架中的两个类(表)中插入数据

Model view controller 通过重新关联多对多在实体框架中的两个类(表)中插入数据,model-view-controller,entity-framework-4,Model View Controller,Entity Framework 4,我在模型中创建了两个类,并通过实体创建了多对多关系 在sql中,我的类是正确地创建表的 当我尝试在此表中插入数据时,get show error Object reference未设置为对象的实例。我的cod是: public class News { public int ID { get; set; } public string Title { get; set; } public string Content { get; set; } public D

我在模型中创建了两个类,并通过实体创建了多对多关系 在sql中,我的类是正确地创建表的

当我尝试在此表中插入数据时,get show error Object reference未设置为对象的实例。我的cod是:

public class News
{

    public int ID { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
    public DateTime Date { get; set; }
    public virtual Picture Picture { get; set; }
    public virtual NewsType NewsType { get; set; }
    public ICollection<Tag> Tag { get; set; }
    public News(int id, string title, string content, DateTime date)
    {
        this.ID = id;
        this.Title = title;
        this.Content = content;
        this.Date = date;
    }
    public News()
    {

    }
  }
    public class Tag
    {
      public int ID { get; set; }
      public string Title { get; set; }
      public ICollection<News> News { get; set; }

      public Tag()
      {

      }

     }

public class DatabaseContext : DbContext
{
    public DatabaseContext()
        : base("News")
    {
    }
    static DatabaseContext()
    {
        Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DatabaseContext>());
    }
    public DbSet<News> newsInfo { get; set; }
    public DbSet<Picture> pictures { get; set; }
    public DbSet<NewsType> Types { get; set; }
    public DbSet<Tag> Tags { get; set; }

}
[HttpPost]
    public ActionResult AddNews(NewsViewModel newsInfo)
    {
        using (Models.DatabaseContext dbContext = new DatabaseContext())
        {
            ViewData["Type"] = new SelectList(dbContext.Types.ToList(), "Id", "Title");
        }

        if (!ModelState.IsValid)
        {
            return View();
        }
        else
        {
            Models.DatabaseContext dbContext = new Models.DatabaseContext();
            Models.News news = new Models.News();
            news.Title = newsInfo.Title;
            news.Content = newsInfo.Content;
            news.Date = DateTime.Now;
            string newsinput = newsInfo.Tag.cleanTag();
            string[] tags = new string[] { };
            if (newsinput != null)
            {
                tags = newsinput.Split(',');
            }
            foreach (string item in tags)
            {
                Tag findTag = dbContext.Tags.Where(x => x.Title == item).FirstOrDefault();
                if (findTag != null)
                {
                    news.Tag.Add(findTag)
                    ////////////////////////show error in this line
                }
            }

            news.NewsType = dbContext.Types.Find(Convert.ToInt32(Request.Form["rdb"]));
            dbContext.newsInfo.Add(news);
            dbContext.SaveChanges();

            return View();
        }

为什么标记是一个嵌套类?它键入了mistakeWell,这很容易在调试器中看到空值。我发现问题:在新闻类和标记类public news{Tags=new List;}public Tag{news=new List;}