افزودن تگ به کوئری EF

در برخی موارد نیاز هست که کوئری ایجاد شده توسط 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);
        }
    }

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *