使用Visual Studio Regex Search查找.Include()链

时间:2013-07-01 13:17:30

标签: regex visual-studio visual-studio-2012

我最近被要求接管使用Entity Framework的大型LOB应用程序。许多db调用使用了几个(> 5)Includes,这会导致一些非常繁重的查询效率低下。我想使用Visual Studio的搜索功能来查找其中一些包含链。作为一个简单的例子,可能看起来像:

var res = ObjectContext.Items.Include("Details")
             .Include("Users").Include("Users.Info");

我想找到超过1个包含的任何实例,并且无论包含的路径是什么都匹配。

如何构建搜索以识别这些链?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

VS2012使用.NET的正则表达式风格,因此您可以执行类似

的操作
(?:[.]Include[(]\s*"[^"]*"\s*[)]\s*){2,}

这匹配一个.Include("something")加上其后的任何空格,然后需要至少重复两次此模式。请注意,如果您的字符串包含引号或者您的字符串中包含逐字符串,则会出现问题。在这种情况下,"[^"]*"必须更加精细。