چندی پیش یک مجموعه آموزشی کامل تحت عنوان EF CodeFirst توسط آقای نصیری در این سایت قرار داده شد که بسیار کامل و زیبا بود.یک پیاده سازی بر اساس این آموزشها تهیه کردم که میتوانید از اینجا دریافت نمایید و شامل پروژههای زیر میباشد:
DomainClasses : شامل کلاسهای مربوطه جهت نگاشت به جداول پایگاه داده ؛ به علاوه کانفیگهای مربوطه میباشد.
DataLayer : لایه دسترسی به دادهها میباشد که شامل اینترفیس IUnitOfWork و یک پیاده سازی از آن در شئی Context میباشد.
Service Layer : شامل اینترفیسها و کلاسهای لایه سرویس میباشد.ابتدا اینترفیسهای مربوطه نوشته شده و سپس پیاده سازی مربوط EF آن در یک پوشه دیگر انجام شده است.لازم به ذکر است که دستورات مربوط به کار با EF به علاوه منطق تجاری برنامه در این لایه قرار میگیرند.
CommonLib : یک پروژه جهت نگهداری متدهای عمومی و Helper میباشد که اینجا مطلب خاصی ندارد و فقط شامل دو پیاده سازی مربوط به تاریخ شمسی میباشد که مهم نیستند! از این پروژه در Domain Class و Data Layer جهت تبدیل تاریخ میلادی به شمسی استفاده شده که میشد این کار را با کلاسهای داخلی دات نت نیز انجام داد و این پروژه را حذف نمود.
تنها تفاوت این پیاده سازی با مطالب موجود در سایت ، Generic بودن اینترفیسها و کلاسهای لایه Service میباشد که میزان کد نویسی را کاهش داده است.
DomainClasses : شامل کلاسهای مربوطه جهت نگاشت به جداول پایگاه داده ؛ به علاوه کانفیگهای مربوطه میباشد.
DataLayer : لایه دسترسی به دادهها میباشد که شامل اینترفیس IUnitOfWork و یک پیاده سازی از آن در شئی Context میباشد.
Service Layer : شامل اینترفیسها و کلاسهای لایه سرویس میباشد.ابتدا اینترفیسهای مربوطه نوشته شده و سپس پیاده سازی مربوط EF آن در یک پوشه دیگر انجام شده است.لازم به ذکر است که دستورات مربوط به کار با EF به علاوه منطق تجاری برنامه در این لایه قرار میگیرند.
CommonLib : یک پروژه جهت نگهداری متدهای عمومی و Helper میباشد که اینجا مطلب خاصی ندارد و فقط شامل دو پیاده سازی مربوط به تاریخ شمسی میباشد که مهم نیستند! از این پروژه در Domain Class و Data Layer جهت تبدیل تاریخ میلادی به شمسی استفاده شده که میشد این کار را با کلاسهای داخلی دات نت نیز انجام داد و این پروژه را حذف نمود.
تنها تفاوت این پیاده سازی با مطالب موجود در سایت ، Generic بودن اینترفیسها و کلاسهای لایه Service میباشد که میزان کد نویسی را کاهش داده است.