شماره تماس 09336863931 | 09178169907 پست الکترونیک provid.ir@gmail.com

استفاده از دستورات خام SQL در Entity Framework Core #4

استفاده از دستورات خام SQL در Entity Framework Core #4 را در این قسمت از وبسایت آموزش برنامه نویسی پرووید دانلود کنید.

استفاده از دستورات خام SQL در Entity Framework Core #4

مدیریت کردن پارامتر ها

به منظور استفاده از پارامترها در دستورات خام SQL نباید پارامترها را به صورت مستقیم درون دستورات SQL قرار دهید چرا که این موضوع امکان حملات SQL Injection را برقرار می کند. متد FromSql روش های مختلفی را برای قرار دادن پارامتر ها فراهم کرده است که تمامی آنها از ساخت یک شی از کلاس DbParameter استفاده می کنند. این موضوع از برنامه شما در مقابل حملات SQL Injection دفاع می کند.

یکی از روش‌های وارد کردن پارامترها به دستورات SQL استفاده از String Interpolation می‌باشد. به منظور انجام این کار دستورات SQL خود را با علامت $ آغاز کنید و پارامترهای ورودی را در درون آکولاد باز و بسته {} بگذارید. دستوری که در ادامه مشاهده می‌کنید نحوه انجام این کار را نشان می دهد.

int cLimit;
cLimit = 10000;
var custs = db.Customers
 .FromSql($"Select * from Customers Where CreditLimit = {cLimit}")
 .ToList();

علاوه بر این می‌توانید از Placeholder ها و Value ها به همان شکل که در متد Format از کلاس String استفاده میکنید بهره ببرید. در کد زیر این موضوع نشان داده شده است.

var custs = db.Customers
 .FromSql("Select * from Customers Where CreditLimit = {0}", cLimit)
 .ToList();

روش آخر استفاده کردن از Syntax دستورات SQL با استفاده از اشیای از کلاس DbParameter می‌باشد. در کد زیر این موضوع نشان داده شده است. دقت کنید که به منظور اضافه کردن پارامتر ها از علامت @ استفاده شده است. به عنوان آخرین موضوع در این آموزش از وب سایت پرووید می‌خواهیم به شما بگوییم که دستور FromSql جایگزینی برای دستور SqlQuery نمی باشد. در واقع متد FromSql ابزاری است که با استفاده از آن میتوانید دستورات خام SQL و دستورات LINQ را با هم ترکیب کرده و Query های بسیار کارآمد بسازید.

DbParameter cLimit = new SqlParameter("limit",110);
var custs = db.Customers
 .FromSql("Select * from Customers Where CreditLimit = @limit", cLimit)
 .ToList();

در پایان این آموزش از شما تشکر می‌کنیم که با وب سایت پرووید همراه بودید و از شما دعوت می کنیم که از بسته های آموزشی LINQ و SQL وبسایت پرووید استفاده کنید.

نظر بدهید

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