View Full Version : سوال: مشکل با پیاده سازی repository pattern در mvc 4
mohammad_kazem
دوشنبه 04 آذر 1392, 08:54 صبح
سلام خدمت همه دوستان. وقت بخیر.
من یه پروزه بزرگ و خیلی مهم رو استارت زدم که تصمیم داشتم با الگوی ریپازیتوری پیاده سازی کنم .ولی الان یه جایی دیدم که این الگو تا حدودی با دیتابیس فرست (DB First) مشکل داره(این جا رو ببینید (http://stackoverflow.com/questions/8037043/using-the-repository-pattern-with-a-ef-4-1-database-first-approach)).
از همه دوستانی در این زمینه تجربه ای دارن خواهش میکنم نظرشون رو بگن. بنده در حال حاضر چیکار بکنم؟
هیچکس نمونه کدی نداره که بهم بده؟
ایا جایی دیدین که اینطوری کار بشه؟
اگه میشه راهنمایی کنین
خیلی ممنون
alireza.tabesh
دوشنبه 04 آذر 1392, 12:54 عصر
تا جایی که من کار کردم فرق Code First و DB First فقط در تقدم و تأخر اونه . حالا برنامه نویس هرجور راحت باشه . در نهایت ما کلاس هایی که بعنوان شیء لازم داریم رو در اختیار داریم . و بحث repository در design pattern موارد مختلفی داره یک بحثش generic type ها هستند. در لینک شما کاملا توضیح داده شده . دقیقا مشکل شما کجاست ؟
اینجا (http://stackoverflow.com/questions/7171023/repository-pattern-with-entity-framework-4-1-and-parent-child-relationships/7172366#7172366)
ferdin
جمعه 15 آذر 1392, 15:06 عصر
با سلام
repository pattern در حقیقت باید به عنوان یک data access layer در پروژه استفاده بشه و ربطی به db First نداره. چون به هر حال شما یک دیتابیس دارید حالا به هر روشی code first, db dirst or model first که ایجاد شده باشه.
هر جایی که نیاز به دیتا هست باید از Repositoryاستفاده بشه و این Pattern هم با unit of work بهتره استفاده بشه.
http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application
http://www.codeproject.com/Articles/526874/Repositorypluspattern-2cplusdoneplusright
به اشتباهی که خیلی ها انجام میدن دقت کنید که نو link Code Project هم توضیح داده.
Do not expose LINQ
methods
Let’s get it straight. There are no complete LINQ to SQL implementations. They all are either missing features or implement things like eager/lazy loading in their own way. That means that they all are leaky abstractions. So if you expose LINQ outside your repository you get a leaky abstraction. You could really stop using the repository pattern then and use the OR/M directly.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.