در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

iran58

نحوه استفاده از sp در UnitOfWork چگونه است

سلام 

من یک برنامه تحت ModelFirst براساس UnitOfWork نوشته ام

 اما می خواهم از sp که نوشته ام در Repository خودم استفاده کنم

 اما نمی دانم چگونه این sp را در Repository مورد نظر فراخوانی کنم

public interface IMenuRepository : IRepository
    {
        IEnumerable MenuLists();
    }
 
public class MenuRepository : Repository, IMenuRepository
    {
        private readonly TestCRUDSignalREntitie _context;
        public MenuRepository(TestCRUDSignalREntitie context) : base(context)
        {
            _context = context;
        }
        public TestCRUDSignalREntitie DatabaseContext => Context as TestCRUDSignalREntitie;
 
 
 
 
        public IEnumerable MenuLists()
        {
            ///!!!!!!!!!!!!!!!!!!????????????
             //return _context.Menus
        }
 
 
    }


    public interface IUnitOfWork : IDisposable
    {
        IMenuRepository MenuRepository { get; }
 
 
        int Complete();
    }
 
    public class UnitOfWork : IUnitOfWork
    {
        private readonly TestCRUDSignalREntitie _context;
        public IMenuRepository MenuRepository { get; private set; }
        public UnitOfWork(TestCRUDSignalREntitie context)
        {
            _context = context;
            MenuRepository = new MenuRepository(_context);
        }
        public int Complete()
        {
            return _context.SaveChanges();
        }
 
 
        public void Dispose()
        {
            _context.Dispose();
        }
    }
 
namespace WindowsFormsApp1
{
    public interface IRepository where TEntity : class
    {
 
 
        TEntity Get(object id);
 
 
 
 
        IEnumerable GetAll();
 
 
 
 
        TEntity GetRow();
 
 
 
 
        TEntity GetAllEntity();
 
 
 
 
        IEnumerable Find(Expression> perdicate);
 
 
 
 
 
 
        TEntity FindSelect(Expression> perdicate);
 
 
        bool FindRow(Expression> perdicate);
 
 
 
 
        IEnumerable FindRawSql(string query, params object[] parameters);
 
 
 
 
        void Add(TEntity entity);
 
 
 
 
        void AddRange(IEnumerable entities);
 
 
 
 
        void Remove(TEntity entity);
 
 
 
 
        void RemoveRange(IEnumerable entities);
 
 
        void Update(TEntity entity);
 
 
    }
}
 
    public class Repository : IRepository where TEntity : class
    {
        protected readonly DbContext Context;
 
 
        public Repository(DbContext context)
        {
            Context = context;
        }
 
 
        public virtual TEntity Get(object id)
        {
            return Context.Set().Find(id);
        }
 
 
        public virtual IEnumerable GetAll()
        {
            return Context.Set().ToList();
        }
 
 
        public virtual TEntity GetRow()
        {
            return Context.Set().FirstOrDefault();
        }
 
 
        public virtual TEntity GetAllEntity()
        {
            return Context.Set().FirstOrDefault();
        }
 
 
        public virtual IEnumerable Find(Expression> predicate)
        {
            return Context.Set().Where(predicate);
        }
 
 
 
 
        public virtual TEntity FindSelect(Expression> predicate)
        {
            return Context.Set().Where(predicate).FirstOrDef  ault();
        }
 
 
        public virtual bool FindRow(Expression> predicate)
        {
            var check = Context.Set().Where(predicate).SingleOrDe  fault();
            return check != null;
        }
 
 
        public IEnumerable FindRawSql(string query, params object[] parameters)
        {
            return Context.Set().SqlQuery(query, parameters).ToList();
        }
 
 
        public virtual void Add(TEntity entity)
        {
            Context.Set().Add(entity);
        }
 
 
        public virtual void AddRange(IEnumerable entities)
        {
            Context.Set().AddRange(entities);
        }
 
 
        public virtual void Remove(TEntity entity)
        {
            Context.Set().Remove(entity);
        }
 
 
        public virtual void RemoveRange(IEnumerable entities)
        {
            Context.Set().RemoveRange(entities);
        }
 
 
        public virtual void Update(TEntity entity)
        {
            Context.Set().Attach(entity);
            Context.Entry(entity).State = EntityState.Modified;
        }
 
 
 
 
    }
لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....