我们一直在使用 Linq-to-SQL 进行数据库持久性。以前,我DataContext
在我的存储库中实例化我的,如下所示:
DbContext db = new DbContext();
现在我想使用 mvc mini profiler 来分析我的数据库,我使用了以下方法来创建DataContext
对象
partial class DBContext
{
public static DBContext Get()
{
var conn = ProfiledDbConnection.Get(new SqlConnection(connectionString));
return new DBContext(conn);
}
}
我得到DataContext
了很好的对象,但是当我对这个对象运行 Linq 查询时,它在以前工作正常的方法上给了我空引用异常。任何想法为什么它会这样?
编辑:好的,这是给我空引用异常的 liqn 查询
var val = (from mod in db.sysModules
where
mod.ModuleActionResult.ToLower().Equals(actionName.ToLowerInvariant())
select mod).SingleOrDefault();
请注意,它不是空的 db,而是扩展 sysModules 实际上会引发异常。
当我尝试在结果视图中扩展 sysmodules 时,请查看以下屏幕截图
,它给出了空引用异常。当我使用 new 关键字实例化 DataContext 时,一切正常。
Edit2:在 AddSqlTiming 方法的 MiniPofiler.cs 中引发了异常。请看一下堆栈跟踪