【问题标题】:ApplicationDbContext instance return nullApplicationDbContext 实例返回 null
【发布时间】:2015-10-01 17:41:10
【问题描述】:

我正在处理我的项目,它运行良好,我没有编辑任何代码,现在当我在每个使用上下文的地方运行项目时,都会抛出“对象引用未设置为对象的实例”错误。 例如:

var db = new ApplicationDbContext();
Response.Write(db.Transactions.FirstOrDefault().Status);

这里抛出一个错误,说 db 为空。 或:

var manager = new UserManager();
ApplicationUser user = manager.Find(txtUserName.Text, txtPassword.Text);

说用户为空,但我有数据库并且我有用户! 甚至在 Global.ascx 文件中的 Application_Start 中:

Database.SetInitializer(new UsersDbInitializer());
var db = new ApplicationDbContext();
db.Database.Initialize(true);

它说 db 为空!在我使用ApplicationDbContext 的任何地方,它都会返回null。

【问题讨论】:

  • ApplicationDbContext 为空,还是在构造函数中调用的其他代码为空?您需要调试程序以确定发生了什么。我们无法为您做到这一点。
  • 在调试时运行db.Database.Initialize(true)抛出错误,说db为null
  • db 不能为空,如果您按照var db = new ApplicationDbContext(); 所示对其进行初始化。你把 something 排除在外了。
  • EntityFramework.dll 中出现“System.NullReferenceException”类型的异常,但未在用户代码中处理
  • 所以问题不在于 db 为空。那是你从某个方法调用中得到了一个错误,但是你没有说那个方法调用是什么。

标签: asp.net webforms


【解决方案1】:

我发现我的错误,我创建了一个 Asp 页面:GroupSend.aspx,我在我写的 ApplicationDbContext 中的模型文件夹 GroupSend.cs 中有一个类

public DbSet<GroupSend> GroupSends {get;set;}

我改成

public DbSet<Models.GroupSend> GroupSends {get;set;} 

现在它正在工作。 谢谢大家

【讨论】:

  • 这与您问题中提到的问题无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 2016-11-05
相关资源
最近更新 更多