TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2362 1.82K
کلید اصلی در EF Core: عدد یا GUID؟

وقتی با EF Core کار می‌کنیم، یکی از تصمیم‌های مهم اولیه انتخاب نوع کلید اصلی (Primary Key) است. دو گزینه رایج داریم:
🔹 عدد صحیح (int یا long)
🔹 شناسه یکتا گلوبال (GUID)

هر کدام از این دو گزینه مزایا و معایب خود را دارند:

✅ عدد صحیح (int/long):
- عملکرد بهتر در جستجو و ایندکس‌گذاری
- خوانایی بیشتر برای انسان‌ها
- حجم کمتر (۴ یا ۸ بایت)

❌ اما:
- در سیستم‌های توزیع‌شده ممکن است باعث تداخل شود.
- قابل پیش‌بینی بودن مقادیر می‌تواند امنیت را کاهش دهد.

✅ نوع GUID:
- یکتایی گلوبال، مناسب برای سیستم‌های توزیع‌شده.
- ادغام راحت داده‌ها از منابع مختلف.
- امنیت بیشتر به خاطر غیرقابل پیش‌بینی بودن.
- می‌توانیم سمت کد موقع ایجاد آبجکت جدید دیتابیسی یک Id جدید اضافه کنیم. Guid.NewGuid که پرفورمنسی بهتر است.

❌ اما:
- عملکرد ضعیف‌تر نسبت به int
- حجم بیشتر (۱۶ بایت)
- سخت‌تر برای خواندن و تایپ دستی

🔍 جمع‌بندی:
تصمیم شخصی من با توجه به موضوعاتی که گفته شد این است که از GUID استفاده کنم تا دیگر به ازای هر Add نیازی نباشد که یک بار دیگر سمت دیتابیس بروم و خب فواید دیگری هم برای Guid دارم و آن پرفورمنسی که در مورد int صحبت شد برای من آنچنان Game Changer نبوده است و مزایای int نسبت به مزایای Guid برای من کمتر است

انتخاب شما چی است؟

🔗 توضیحات تکمیلی را اینجا بخوانید.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#حامد_حاجیلو (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

______
Medium Choosing the Right Primary Key in EF Core: int vs. GUID When developing applications with Entity Framework Core (EF Core), one of the early decisions you’ll encounter is selecting the type for…
  • 👍 12
  • ❤ 1
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 →