TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2361 2.18K
تفاوت Add و AddAsync در EF Core به همراهی Hi/Lo!

اگه با 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

______
Medium Hi/Lo with Entity Framework An SQL sequence is a database object that generates a sequence of unique numeric values.
  • 👍 9
  • ❤ 5
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →