Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
python week
Avatar
Ravensburger karton s.r.o.:2.4.2020 17:11

Dobrý den, na youtube kanálu jsem našel tento script:

using IS_R.DataAccess.Interface;
using IS_R.DataAccess.Interface.Repository;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IS_R.DataAccess.Repository
{
    public class RepositoryBase<T> : IRepositoryBase<T> where T : class, IEntity
    {
        protected NHibernate.ISession session;

        public RepositoryBase()
        {
            session = NHibernateHelper.Session;
        }

        public object Create(T entity)
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                object o = session.Save(entity);
                transaction.Commit();
                return o;
            }
        }

        public void Delete(T entity)
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Delete(entity);
                transaction.Commit();
            }
        }

        public IList<T> GetAll()
        {
            return session.QueryOver<T>().List();
        }

        public T GetById(int id)
        {
            return session.CreateCriteria<T>().Add(Restrictions.Eq("Id", id)).UniqueResult<T>();
        }

        public int GetCount()
        {
            return session.CreateCriteria<T>().SetProjection(Projections.RowCount()).UniqueResult<int>();
        }

        public IList<T> GetLatestEntities(string datePropertyName, int requestedCount, out int totalCount)
        {
            totalCount = GetCount();
            return session.CreateCriteria<T>().AddOrder(Order.Desc(datePropertyName)).SetMaxResults(requestedCount).List<T>();
        }

        public IList<T> GetPagedEntites(int startIndex, int requestCount, out int totalCount, string orderColumnName = null, bool asc = true)
        {
            ICriteria criteria = session.CreateCriteria<T>().SetFirstResult(startIndex)
                .SetMaxResults(requestCount);

            if (!string.IsNullOrEmpty(orderColumnName))
            {
                criteria.AddOrder(asc ? Order.Asc(orderColumnName) : Order.Desc(orderColumnName));
            }

            totalCount = GetCount();
            return criteria.List<T>();
        }

        public virtual void Update(T entity)
        {
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Update(entity);
                transaction.Commit();
            }
        }
    }
}

a potřeboval bych ho napasovat na EntityFramework. Bohužel už dlouho si nevím rady, mohl by mi někdo ze znalých pomoci? Děkuji.

 
Odpovědět
2.4.2020 17:11
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.