پیادهسازی شناسه های قویتایپ در .NET برای مدلهای دامنه ایمنتر
نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۲۲ ۰۹:۳۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
int یا string برای نمایش دادههای پیچیده، که به آن "وسواس ابتدایی" (Primitive obsession) گفته میشود، میتواند منجر به نقض پنهان کپسولهسازی شود. این امر نیاز به افزودن یک لایه اعتبارسنجی اضافی در کد دارد. برای موجودیتهای خاص دامنه مانند URLها یا آدرسها، میتوان از موجودیتهای متعلق (owned entities) استفاده کرد، اما برای تعریف هویتهای خاص دامنه، به شناسه های قویتایپ نیاز است.
این مقاله با ایجاد یک برنامه کنسولی با پایگاه داده PostgreSQL، مشکل استفاده از شناسه های ابتدایی را نشان میدهد. مراحل ایجاد پروژه، نصب بستههای لازم (مانند Microsoft.EntityFrameworkCore و Npgsql.EntityFrameworkCore.PostgreSQL) و تعریف مدلها (مانند Player، Team و PlayerTeam) به تفصیل شرح داده شده است. مدلها شامل ویژگیهایی مانند Id، Name و روابط بین آنها هستند.
در نهایت، نحوه پیکربندی ApplicationDbContext برای استفاده از این مدلها با EF Core توضیح داده شده است. این شامل تعریف DbSet برای هر مدل و Override کردن متد OnConfiguring برای اتصال به پایگاه داده PostgreSQL است. هدف از این رویکرد، بهبود امنیت و قابلیت نگهداری کد با استفاده از شناسه های قویتایپ به جای شناسه های ابتدایی است.