私は最近、大きなEntity Frameworkを使用するLOBアプリケーション。 dbコールの多くは、いくつかの(> 5)インクルードを使用するため、非常に重いクエリの非効率性が生じます。 Visual Studioの検索機能を使用して、これらのインクルードチェーンの一部を探したいとします。簡単な例として、次のようになります。
var res = ObjectContext.Items.Include("Details")
.Include("Users").Include("Users.Info");
私は1つ以上のインクルードのインスタンスを見つけるのが好きで、インクルードパスが何であるかにかかわらず一致します。
これらの鎖を同定するためにどのように構造を探索すればよいですか?どんな助けでも大歓迎です!
回答:
回答№1は2VS2012は.NETのregexフレーバーを使用しているので、次のようなことができます
(?:[.]Include[(]s*"[^"]*"s*[)]s*){2,}
これは1つにマッチする .Include("something")
それに続く空白とそれに続く必要なものこのパターンの少なくとも2回の繰り返し。文字列に引用符が含まれている場合、または文字列に逐語的な文字列が含まれていると問題が発生することに注意してください。 "[^"]*"
もう少し精巧でなければならないだろう。