• 0
red_scorpion1

مشكله فى إنشاء ملف Dll يعمل مع MVC

سؤال

السلام عليكم ورحمة الله وبركاته

 

اود مساعدتكم فى انشاء ملف Dll خاص ب Repositories & UnitOfWork داخل مشاريع MVC وبفضل الله تعالى نجحت فى عمل الجزء الأول من المشروع والخاص بـ Repositories 

 

كود EfGenericRepository.cs

using System;using System.Collections.Generic;using System.Data.Entity;using System.Linq;using System.Web;namespace Class6_HtmlHelpers.Models.Repositories{    public class EfGenericRepository<T> : IGenericRepository<T> where T : class    {        DbContext _db;        IDbSet<T> entity;        public EfGenericRepository(DbContext db)        {            this._db = db;            entity = this._db.Set<T>();        }        public IEnumerable<T> List()        {            return entity;        }        public T Find(int id)        {            return entity.Find(id);        }        public void Add(T entityToAdd)        {            entity.Add(entityToAdd);        }        public void Edit(int id, T entitToUpdate)        {            entity.Attach(entitToUpdate);            _db.Entry<T>(entitToUpdate).State = EntityState.Modified;        }        public void Delete(int id)        {            var selectedEntity = entity.Find(id);            _db.Entry<T>(selectedEntity).State = EntityState.Deleted;        }    }}

كود IGenericRepository.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Class6_HtmlHelpers.Models.Repositories{    public interface IGenericRepository<T> where T : class    {        IEnumerable<T> List();        T Find(int id);        void Add(T ToAdd);        void Edit(int id, T ToUpdate);        void Delete(int id);    }}

وهذا الجزء يعمل بلكفاءه والحمد لله واستطيع إستدعائه داخل اى مشروع دون اى مشكله ولكن مشكلتى هى فى اعداد UnitOfWork داخل ملف Dll لكى استطيع إستدعائه فى كل مشروع وتعبئته بالبيانات اللازمة حيثت تكمن المشكله لدى فى اننى لا عرف ماذا اكتب فى مشروع dll مكان إسم قاعدة البيانات او "Entity Freamwork" حتى يمكننى عند العمل بها فى اى مشروع كتابه إسم قاعدة البيانات الخاصة بالمشروع - كذلك مكان Model لا اعرف ماذا اكتب مكانه فى ملف Dll - طبعا ان تم عمل UnitOfWork فيمكننى تعبئتها بإسم قفاعده البيانات وال Model وتعمل بكل سهوله ولكنى اود عمل UnitOfWork  عامه تعمل معى فى جميع مشاريعى ؟

 

كود IUnitOfWork.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Class6_HtmlHelpers.Models.Repositories;namespace Class6_HtmlHelpers.Models.UnitOfWork{    public interface IUnitOfWork    {        IGenericRepository<Post> Posts { get; }        IGenericRepository<Tag> Tags { get; }        void Save(); //Commit    }}

كود UnitOfWork.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using Class6_HtmlHelpers.Models.Repositories;namespace Class6_HtmlHelpers.Models.UnitOfWork{    public class UnitOfWork : IUnitOfWork, IDisposable    {        BlogDbContext _context;        public UnitOfWork()        {            _context = new BlogDbContext();        }        private IGenericRepository<Post> _posts;        public Repositories.IGenericRepository<Post> Posts        {            get            {                if (_posts == null)                {                    return new EfGenericRepository<Post>(_context);                }                return _posts;            }        }        private IGenericRepository<Tag> _tags;        public Repositories.IGenericRepository<Tag> Tags        {            get            {                if (_tags == null)                {                    return new EfGenericRepository<Tag>(_context);                }                return _tags;            }        }        public void Save()        {            _context.SaveChanges();        }        public void Dispose()        {            _context.Dispose();            GC.SuppressFinalize(this);        }    }}

فهل يمكن عمل UnitOfWork عامه يمكن إستدعائها والعمل بها داخل اى مشروع ؟ ام لا بد ان تكون UnitOfWork  الخاصة بكل مشروع داخله فقط ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

0 إجابة على هذا السؤال .

لاتوجد إجابات على هذا السؤال حتى الآن .

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .