Model view controller 通过重新关联多对多在实体框架中的两个类(表)中插入数据
我在模型中创建了两个类,并通过实体创建了多对多关系 在sql中,我的类是正确地创建表的 当我尝试在此表中插入数据时,get show error Object reference未设置为对象的实例。我的cod是: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
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;}