سلام
خیلی جاها نوشته که نباید متد های Save و Update رو در کلاس Repository ساخت، و باید این متدها در کلاس UOW باشن
حالا فرض کنید من یه پروژه دارم که شامل چندین DbContext هست. حالا چطوری متوجه بشم اون Entity که باید آپدیت بشه. مربوط به کدوم Context هست؟
یا من باید به ازای هر Context یه متد Update بنویسم؟
ممنون
سلام
فرض اول شما را اولین بار است که می شنوم!!!!
چرا نبید ذخیره و ویرایش را در ریپوزیتوری ساخت؟؟!!! اشکالش کجاست؟!!؟
مدت هاست دارم داخل ریپوزیتوری از این کارها می کنم والا که مشکلی هم وجود نداشته!
یه نمونه :
another very common mistake! your repositories should not have a Save() or Update() method.
I repeat: think of a repository as a collection of domain objects in memory.
Do collections have a Save() or Update() method? No!
با سلام خدمت شما دوست عزیز
ببینین این مسئله برمیگرده به نوع معماری و ساختاری که شما در نظر میگیرین.
هدف اصلی UnitOfWork میشه گفت Share کردن Context هستش پس میشه گفت اگر متد های اصلی Save و Update در این لایه قرار بگیرن مشکلی پیش نمیاد. البته دلیل این حرفم هسته ی اصلی .NET Core هستش که بازنویسی شده و در این امر کمک میکنه. اما از طرف دیگه هدف اصلی لایه ی Repository اعمال عملیات اصلی روی دیتا بیس هستش.
تصور کنین پس از مدتی Provider شما تغییر پیدا کرد. مسلما در کنار تغییر در لایه ی Repository مجبور هستین تا لایه ی UnitOfWork خودتون رو هم تغییر بدین که این یعنی Dependency و در اصل کل معماری شما زیر سوال میره
پیشنهاد من به شما اینه که Repository خودتون رو به صورت کامل پیاده سازی کنین
موفق باشین
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)