
در برخی موارد نیاز هست که کوئری ایجاد شده توسط EF را روی Profiler پیدا کنیم و ببینیم این کوئری کجای برنامه ایجاد و اجرا شده است. در EF قابلیت به نام WithTag()
وجود داشته که میتوان به کوئریها تگ اضافه کرد و سپس این کوئری رو توی Profiler پیدا کرد.
حالا برای اینکه این تگ رو بهبود بدیم میتونیم از اکستنشن متد زیر استفاده کنیم:
public static class QueryTagExtension { public static IQueryable<T> _TagWithMoreDetails<T>(this IQueryable<T> query, string message = "", [CallerMemberName] string memberName = "", [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0) { string tag = string.Empty; if (!string.IsNullOrEmpty(message)) { tag = $"Executing method: [{memberName}] from file: [{Path.GetFileName(filePath)}] at line: [{lineNumber}] - message: [{message}]"; } else { tag = $"Executing method: [{memberName}] from file: [{Path.GetFileName(filePath)}] at line: [{lineNumber}]"; } return query.TagWith(tag); } }