エンティティ フレームワークからデバッグ用のパラメーターを含むクエリ文字列を取得しようとしています。いいえ、EFProfiler は使用しません。クエリ文字列を出力としてページに表示する必要があるからです。これらのクエリのほとんどは、ExecuteStoredQuery() を使用して手動で作成されます。ただし、それらを ObjectQuery にキャストすると null が生成されます。
例:
ObjectResult<Parent> model = _context.ObjectContext().ExecuteStoreQuery<Parent>("SELECT * FROM Parents");
var objectQuery = model.AsQueryable() as ObjectQuery<Parent>;
objectQuery がヌルです。ObjectContext() は、次のような datacontext の単純なメソッドです。
return (this as IObjectContextAdapter).ObjectContext;
私は自分のアイデアを使い果たしましたが、検索から返されたものはすべて...まあ、役に立たない.誰もその問題を解決していないようです. 結果はクエリから正しく返されます。
編集:そうですね、これについても言及すべきでした。
これを行う:
var oq = m as ObjectQuery<Parent>;
私にこれをもたらします:
参照変換、ボックス化変換、ボックス化解除変換、ラッピング変換、または null 型変換を介して、型 'System.Data.Objects.ObjectResult' を 'System.Data.Objects.ObjectQuery' に変換できません
AsQueryable() をキャストする必要があると思ったのは、明らかな理由から、これは... null です。この小さなディテールを追加するのを忘れたのは私の疲れた頭でした。