نمایش و لاگ کوئری ایجاد شده توسط EF6

آخرین بروز رسانی: 1401/02/21

زمانهایی پیش میاد که میخاید کوئری ایجاد شده توسط EF رو مشاهده و بررسی کنید
قبلن باید از ابزار profiler استفاده میکردید اما این امکان در EF6 بضورت توکار وجود داره


فقط "Microsoft.EntityFrameworkCore.Database.Command": "Information" رو به   appsettings.Development.json  اضافه کنید

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDB-2;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
     ,"Microsoft.EntityFrameworkCore.Database.Command": "Information"
    }
  },
  "AllowedHosts": "*"
}

خروجی SQL در پنجره فرمان یا پنجره output نشون داده می شه.

البته از EF 5 هم میشد از متد ()LogTo  در startup  استفاده کرد

    public class AppDbContext : DbContext
    {
        public DbSet<Customer> Customers { get; set; }

        public AppDbContext(DbContextOptions<AppDbContext> options): base(options) { }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
                                => optionsBuilder.LogTo(Console.WriteLine);


    }

روش 2:

برای استفاده از این، می‌خواهید یک breakpoint  زیر کوئری EF Core خود تعیین کنید.

 

 

 

لاگ کردن کوئریهای ایجاد شده

تا اینجا روشهایی برای دیدنکوئری ها یادگرفتیم حالا اگر بخاید از داخل کد به کوئری ایجاد شده دسترسی داشته باشید و لاگ کنید میتونید از تابع ()ToQueryString استفاده کنید

برای این کار، باید با استفاده از متد ()query.ToQueryString یک متغیر ایجاد کنید. سپس می توانید آن را روی کنسول بنویسید.

نظر دهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *