tgoop.com/fullStackDevs/431
Last Update:
#EF_Core3
#FromSqlRaw
#ExecuteSqlRaw
🔹 بررسی تغییرجدیدی که از preview 4 بروی EF Core 3.0 اعمال شده است.
در نسخه های قبلی از این متد FromSql برای اجرای یک raw SQL query به صورت مستقیم استفاده میشد.
اما در نسخه جدید (3.0) از متد های
FromSqlRaw ، ExecuteSqlRaw ExecuteSqlRawAsync
برای اجرای یک raw SQL query که پارامتر های آن به صورت جدا در کوئری استرینگ مقدار دهی میشوند، استفاده میشوند.این متد ها جایگزین متد FromSql شده اند.
context.Products.FromSqlRaw(
"SELECT * FROM Products WHERE Name = {0}",
product.Name);
همچنین از متدهای
FromSqlInterpolated, ExecuteSqlInterpolated, ExecuteSqlInterpolatedAsync
برای اجرای یک raw SQL query استفاده میشوند با این تفاوت که در این متدها پارامتر های کوئری در مابین کوئری استرینگ و نه به صورت جدا مقداردهی میشوند.
context.Products.FromSqlInterpolated(
$"SELECT * FROM Products WHERE
Name = {product.Name}"
);
تغییر دیگری که در نسخه جدید اتفاق افتاده است محل صدا زدن این متد هاست. در نسخه های قبل تر از (3.0 )متد FromSql را در هر جای کوئری لینک خود میتوانستید صدا بزنید اما از در نسخه جدید متد های جایگزین شده را فقط مستقیما بروی DbSet<> می توانید صدا بزنید.
هدف از انجام این تغییر هم فقط برای جلوگیری از ابهام در کوئری، آن هم در سناریوهای خاص بوده است.
@fullStackDevs
BY Web Devs
Share with your friend now:
tgoop.com/fullStackDevs/431