Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Migrace Nhibernate na EntityFramework

Aktivity
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.