در سالهای اخیر Entity Framework پیشرفتهای چشمگیری داشته و ویژگی های بسیار زیادی رو برای پیاده سازی Domain Model های rich و پیاده سازی دامینهایی با encapsulation بسیار بالا عرضه کرده.

قبل از شروع این دوره پیشنهاد میکنم تا در مورد موارد زیر تسلط نسبی داشته باشید:
اگر در نسخه های قبل سعی کرده باشین که DDD رو با استفاده از EF پیاده سازی کنید، شاید با چالشهایی روبرو شده باشین، اما به لطف توسعه های اخیر در EF Core میشود گفت که پیاده سازی DDD بسیار کاربردی تر شده است.
در این مقاله خواهید آموخت که چگونه مدل خود را پیاده سازی کنید بدون اینکه به Encapsulation دامین شما آسیبی برسد، همچنین به جزئیات و قدم به قدم شروع به پیاده سازی Rich Domain Model میکنیم و در طول مسیر خواهید دید که چگونه EF Core بصورت داخلی کار میکند و از چه ویژگی های از اون باید بهره ببرید.
این مقاله به بخشهای زیر تقسیم بندی خواهد شد:
1- قوانین Encapsulation و SoC (Separation Of Concern) و چرا این دو قانون بسیار مهم هستند.
2-پیاده سازی یک برنامه و نحوه استفاده از روابط many‑to‑one ، many-to-many , one-to-one و many-to-one
3-پیاده سازی Base Entity Class
4- استفاده از Lazy Loading و eager loading
5- استفاده از Backing Field برای پنهان سازی عملیات و نحوه استفاده از اون در Collection
6- استفاده از Value Object