ورود

View Full Version : لایه بندی مناسب برای EF Core



R_Rajaee_Rad
چهارشنبه 03 مرداد 1397, 12:22 عصر
سلام
برای لایه بندی پروژه های EF core در لایه سرویس سه راه حل توصیه میشه:

1- Repository
1-Unit of Work
2- نوشتن کلاس جداگانه دستی

مایکروسافت میگه که من خودم در DbContext از الگوی ریپوزیتوری و Uow استفاده کردم دیگه لازم نیست شما یه لایه دیگه ای بکشی رو EF
خب اینجا دو تا سوال برام پیش میاد
1-با این قضیه یعنی لایه بندی نرم افزار کشک؟ تمام کدهای کار با Ef رو توی کنترلر بزنیم؟
2- اگر کشیدن لایه روی EF کار درستی نیست، پس فرق unit Of work , Repository و ... با همدیگه چیه؟ اینا همه در حقیقت دارن یک کار رو میکنن

ali_md110
چهارشنبه 03 مرداد 1397, 16:44 عصر
لایه های Repository در واقع یک نوع نظم دادن به توابع EF هستند و لزومی هم ندارند ولی با گسترش پروژه به ریپازیتوری نیاز پیدا میکنیم
بکارگیری ریپازیتوری همراه با تزریق در سازنده به کارایی بیشتری میرسیم
Unit OF work در واقع برای بکارگیری یک دیتاکانتکست برای چندین عمل همزمان درج و آپدیت یا حذف کاربرد دارد مثل SaveChanges

hamzehsh
پنج شنبه 15 فروردین 1398, 16:16 عصر
سلام
من در مورد Unit of work و Repository خیلی مطلب خوندم این موضوعی هم که شما مطرح فرمودید رو مطالعه کردم و جالب بود برام
موضوعات آموزشی رو هم مطالعه کردم
همه اول Repostitory ها رو میسازند و سپس UOW رو آموزش میدهند
یک موضوع رو متوجه نشدم

من یک دیتابیس دارم یک کلاس Ado.Net entity رو به پروزه اضافه کردم
حالا با توجه به الگوی Unit Of Work
این قطعه کد رو مینویسم


private CrudGenericRepository<Person> _Person;
public CrudGenericRepository<Person> Person
{
get
{
if (_Person== null)
{
_Person= new CrudGenericRepository<Person>(_db);
}
return _Person;
}
}

وقتی که اینجا دارم مستقیم به خود جدول person اشاره میکنم پس نقش repository چیه؟
و کجای این قضه به Repository ها مربوط میشه؟
اصلا چرا باید بسازمشون؟