برنامه نویسی

معماری تمیز: چرا من مستقیماً تزریق DBContext را متوقف کردم

در روزهای ابتدایی با هسته ASP.NET ، من اغلب dbcontext را مستقیماً به کنترل کننده ها یا خدمات تزریق می کردم. این کار کرد-اما با گذشت زمان ، اوضاع کثیف شد: کد سخت آزمون ، اتصال محکم و منطق کسب و کار به زیرساخت ها نشت می کند.

این کاری است که اکنون انجام می دهم:
من از الگوی مخزن با واحد کار برای از بین بردن منطق دسترسی به داده ها. خدمات من با رابط هایی مانند IorderRepository صحبت می کنند ، نه DBContext.

شرح تصویر

public interface IOrderRepository
{
    Task GetByIdAsync(Guid id);
    void Add(Order order);
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مزایا:

  • تست واحد آسانتر (مخازن مسخره)

  • جدایی روشن از نگرانی ها

  • منطق دامنه با کد خاص EF مخلوط نشده است

نکته:
اگر در حال کار بر روی یک پروژه متوسط ​​تا بزرگ هستید ، سعی کنید هسته EF را در پشت رابط ها جدا کنید. این یک تغییر کوچک است که زمان زیادی را می پردازد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا