آموزش Raw SQL Queries در EF Core

در این آموزش، قصد داریم به یکی از قابلیت‌های مهم EF Core بپردازیم. اجرای دستورات SQL خام یا همان Raw SQL Queries. این قابلیت در شرایطی که نیاز به اجرای کوئری‌های پیچیده یا بهینه‌سازی عملکرد داریم، بسیار کاربردی است. EF Core به طور پیش‌فرض از LINQ برای ساخت کوئری استفاده می‌کند. اما گاهی مواقع نیاز است که خودمان مستقیماً کوئری SQL بنویسیم، مخصوصاً وقتی:

  • کوئری خیلی پیچیده باشد و با LINQ به سختی پیاده شود.
  • بخواهیم از یک Stored Procedure استفاده کنیم.
  • نیاز به performance بالا داریم و کوئری بهینه‌تری نوشته‌ایم.

استفاده از FromSqlRaw و FromSqlInterpolated

برای اجرای کوئری SELECT بر روی موجودیت‌هایی که در DbSet تعریف شده‌اند:

var users = context.Users
    .FromSqlRaw("SELECT * FROM Users WHERE IsActive = 1")
    .ToList();

در مثال بالا، مقدار عددی ۱ مستقیماً در کوئری قرار گرفته و این روش برای مقادیر ثابت قابل استفاده است. ولی اگر بخواهیم پارامتر را مثلا از کاربر بگیریم و ارسال کنیم میتوانیم از روش زیر استفاده کنیم. FromSqlInterpolated از SQL Injection جلوگیری می‌کند و امن‌تر است.

var users = context.Users
    .FromSqlInterpolated($"SELECT * FROM Users WHERE Age > {minAge}")
    .ToList();

اجرای دستورات INSERT, UPDATE, DELETE با ExecuteSqlRaw. توجه: ExecuteSqlRaw مقدار برگشتی ندارد (non-query).

int affectedRows = context.Database.ExecuteSqlRaw("UPDATE Users SET IsActive = 0 WHERE LastLogin < GETDATE() - 30");

نکات امنیتی مهم Raw SQL Queries

  • هرگز از FromSqlRaw با مقادیر مستقیم کاربر استفاده نکنید.
  • از FromSqlInterpolated استفاده کنید یا SqlParameter.
  • لاگ‌گیری کوئری‌ها را فعال کنید تا از اجرای صحیح و ایمن آن‌ها مطمئن شوید.

نتیجه‌گیری آموزش Raw SQL Queries در EF Core

استفاده از Raw SQL در EF Core انعطاف فوق‌العاده‌ای به ما می‌دهد تا در موارد خاص بتوانیم کنترل بیشتری روی کوئری‌ها داشته باشیم. اما استفاده‌ی نادرست از آن ممکن است منجر به مشکلات امنیتی یا نگهداری شود.

مشاهده در آپارات یا یوتیوب

محتوای ویدیویی این صفحه در سایت قابل مشاهده است. اما اگر عادت دارید توی پلتفرم آپارات یا یوتیوب ویدیوها را مشاهده کنید، می‌توانید از دکمه‌های زیر استفاده کنید.

تماشای ویدیوی آموزش Raw SQL Queries در EF Core در آپارات و یوتیوب

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه آموزش Raw SQL Queries در EF Core در شبکه‌های اجتماعی

نظرات شما برای ما ارزشمند است

متاسفانه تاکنون پیامی برای این مطلب ثبت نشده است. شما اولین شخصی باشید که پیام می‌گذارد.

نظرات کاربران

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.