/ / Znajdź łańcuchy .Include () za pomocą Visual Studio Regex Wyszukaj [zamknięte] - regex, visual-studio, visual-studio-2012

Znajdź łańcuchy .Include () za pomocą Visual Studio Regex Search [zamknięte] - regex, visual-studio, visual-studio-2012

Ostatnio zostałem poproszony o przejęcie dużejAplikacja LOB korzystająca z Entity Framework. Wiele wywołań db wykorzystuje kilka (> 5) opcji Includes, co powoduje bardzo dużą nieefektywność zapytań. Chcę użyć funkcji wyszukiwania programu Visual Studio, aby znaleźć niektóre z nich obejmują łańcuchy. Jako szybki przykład, może wyglądać tak:

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

Chciałbym znaleźć dowolne wystąpienie więcej niż 1, i dopasować niezależnie od tego, co jest ścieżka dołączania.

Jak mogę uporządkować wyszukiwanie, aby zidentyfikować te łańcuchy? Każda pomoc jest najbardziej ceniona!

Odpowiedzi:

2 dla odpowiedzi № 1

VS2012 używa smaku regex .NET, więc możesz zrobić coś takiego

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

To pasuje do jednego .Include("something") plus dowolna biała przestrzeń po nim, a następnie wymagaco najmniej dwa powtórzenia tego wzoru. Zauważ, że będziesz mieć problemy, jeśli twoje ciągi zawierają cytaty lub masz tam ciągi znaków. "[^"]*" musiałyby być nieco bardziej wyszukane.