اگه با Entity Framework Core کار میکنید، شاید برایتان سوال پیش آمده باشد که بهتر است از Add استفاده کنیم یا AddAsync؟
✅ متد Add فقط موجودیت را به Change Tracker اضافه میکند و هیچ ارتباطی با دیتابیس برقرار نمیکند تا زمانی که
SaveChanges یا SaveChangesAsync صدا زده شود.✅ متد AddAsync هم همین کار را میکند، با این تفاوت که در موارد خاص مثل استفاده از Value Generatorهایی مثل HiLo، ممکن است نیاز باشد در لحظهی اضافهکردن، دیتابیس را صدا بزند. برای همین
AddAsync به صورت غیرهمزمان طراحی شده است.در نتیجه اگر از Value Generator خاصی استفاده نمیکنید،
Add سریعتر و سبکتر است چون سربار ساخت Task و State Machine را ندارد. اما اگه احتمال میدهید EF نیاز داشته باشد در لحظهی اضافهکردن با دیتابیس ارتباط بگیرد، AddAsync انتخاب بهتری است.📌 نکته مهم: تفاوت اصلی در زمان اجرای
SaveChanges اتفاق میافتد، نه هنگام Add یا AddAsync.نتیجهگیری: در ۹۹٪ موارد، استفاده از
Add کفایت میکند. AddAsync فقط برای سناریوهای خاص مثل HiLo یا Sequence Generatorها کاربرد دارد.حال Hi/Lo چیست؟
با Hi/Lo میتوانیم شناسهها را سمت کلاینت تولید کنیم، بدون اینکه منتظر ذخیره شدن در دیتابیس بمانیم. EF یک مقدار بالا (Hi) از دیتابیس میگیرد و با یک آفست پایین (Lo) در حافظه، شناسهها را تولید میکند.
🔗 نحوه استفاده از این فیچر را هم میتوانید اینجا به همراه توضیحات کامل بخوانید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______