データベースの永続性のためにLinq-to-SQLを使用しています。以前はDataContext
、リポジトリで次のようにインスタンス化していました。
DbContext db = new DbContext();
mvc ミニ プロファイラーを使用してデータベースをプロファイリングしたいので、次のアプローチDataContext
を使用してオブジェクトを作成しました。
partial class DBContext
{
public static DBContext Get()
{
var conn = ProfiledDbConnection.Get(new SqlConnection(connectionString));
return new DBContext(conn);
}
}
オブジェクトは問題なく取得できDataContext
ますが、このオブジェクトに対して Linq クエリを実行すると、以前は正常に機能していたメソッドで null 参照例外が発生します。なぜこのように振る舞うのか、何か考えはありますか?
編集:わかりました、これはnull参照例外を与えているliqnクエリです
var val = (from mod in db.sysModules
where
mod.ModuleActionResult.ToLower().Equals(actionName.ToLowerInvariant())
select mod).SingleOrDefault();
nullであるdbではなく、sysModulesを展開すると実際に例外がスローされることに注意してください。
ここで結果ビューで sysmodules を展開しようとしたときの次のスクリーン ショットを見てください
。null 参照例外が発生します。新しいキーワードを使用して DataContext をインスタンス化すると、すべて正常に動作します。
Edit2: AddSqlTiming メソッドの MiniPfiler.cs で例外がスローされています。スタックトレースを見てください