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

تهران آی تی / برنامــه نویــسـی / آموزش Raw SQL Queries در EF Core

آموزش 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 و Asp.Net Core

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

جستجو کنید
دسترسی سریع
دسته ها

طراحی و پیاده سازی پروژه های طراحی سایت دانشجویی

انجام، اجرا و طراحی پروژه های طراحی سایت برای دانشجویان با HTML CSS PHP ASP.NET JAVA و ... با کمترین هزینه. برای مشاهده نمونه کارها و یا دریافت مشاوره رایگان از تیم طراحی سایت تهران آی تی با ما در تماس باشید. ما بهترین پروژه های طراحی سایت را با حداقل هزینه برای شما طراحی میکنیم - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

مطالب مرتبط

لطفا از مطالب مرتبط با این پست دیدن فرمایید

جــذاب های هفته

از پربازدیدترین مطالب تهران آی تی در هفته ای که گذشت دیدن فرمایید

باورکردنی نیست فقط با 300 هزار تومان

طراحی سایت شما + طراحی اپلیکیشن هدیه و رایگان
این یک حراج است در مدت زمان محدود - شرکت های زیادی سایت های ارزان طراحی میکنند اما آیا کیفیت لازم را دارا هستند؟ طراحی سایت ارزان به همراه اپلیکیشن رایگان هدیه برای اولین بار توسط تهران آی تی مخصوص سازمان ها و کسب و کار های کوچک و بزرگ و حتی جدید تیم طراحی سایت تهران آی تی در کنار شماست تا شناخته شوید - مشاوره رایگان 09121486770

مــشاوره و مشاهده نمونه کارها

پشتیبانی 24 ساعته

تیم تهران آی تی در هفت روز هفته و 24 ساعت روز آماده پاسخ گویی به سوالات کاربران و ارائه مشاره رایگان میباشد