使用EF使用asp.net保存到数据库时出现NullReferenceException

时间:2013-12-18 14:19:09

标签: c# asp.net entity nullreferenceexception

我有一个电影数据库,我正在尝试保存一个类型。我在winforms中有相同的项目,并且代码有效,所以我可能错过了一些简单的东西。

无论如何,这是代码:

    MovieCollectionEntities db = new MovieCollectionEntities();
    Genre g = new Genre();
    g.GenreName = TextBoxGenresAdd.Text;
    db.Genres.Add(g);
    db.SaveChanges();

我得到的错误信息是:

System.NullReferenceException was unhandled by user code
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.

编辑:
值得一提的可能是我正在使用主分页,代码来自AddGenre.aspx。

edit2:可以在NullReferenceException in DbContext.saveChanges()

找到完整的答案

3 个答案:

答案 0 :(得分:1)

@Abhinav链接到正确的页面。问题是aspx页面的名称与导致程序崩溃的实体名称相同。

答案 1 :(得分:0)

grimsan55,

当您尝试插入数据库的数据未与数据库中的字段对齐时,通常会发生此错误。例如,如果在您的电影数据库中,您有标题,评级和制作人的字段,并且每个字段都是NOT NULL。然后你去插入数据,但你只有标题和评级,这个错误将被抛出。

最好的办法是回到您的数据库并确保一切设置正确,然后转到项目中的模型并更新模型。您可能已经更改了数据库中的某些内容,但忘记在项目中更新模型。

希望这会有所帮助。我有时在更新数据库时忘记了这个问题,忘记了我改变了什么,然后尝试保存数据,就像以前一样。

答案 2 :(得分:-1)

从这段代码中可以看出,db.Genres.Add(g);可能会尝试将g添加到不存在的Genres列表中。在调用Genres方法之前,请尝试确保Add