Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di EnSa
    Registrato dal
    Apr 2009
    Messaggi
    191

    [asp.net mvc3] Generic Repository

    codice:
        public class SortExpression<TEntity, TType>
        {
            Expression<Func<TEntity, TType>> SortProperty;
        }
    
        public class GenericRepository<TEntity> where TEntity : class
        {
            internal DatabaseContext context;
            internal DbSet<TEntity> dbSet;
    
            public GenericRepository(DatabaseContext context)
            {
                this.context = context;
                this.dbSet = context.Set<TEntity>();
            }
    
            public virtual IEnumerable<TEntity> Get(
                Expression<Func<TEntity, bool>> filter = null,
                Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
                string includeProperties = "")
            {
                IQueryable<TEntity> query = dbSet;
    
                if (filter != null)
                {
                    query = query.Where(filter);
                }
    
                foreach (var includeProperty in includeProperties.Split
                    (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    query = query.Include(includeProperty);
                }
    
                if (orderBy != null)
                {
                    return orderBy(query).ToList();
                }
                else
                {
                    return query.ToList();
                }
            }
    
            public virtual TEntity GetByID(object id)
            {
                return dbSet.Find(id);
            }
    
            public virtual void Insert(TEntity entity)
            {
                dbSet.Add(entity);
            }
    
            public virtual void Delete(object id)
            {
                TEntity entityToDelete = dbSet.Find(id);
                Delete(entityToDelete);
            }
    
            public virtual void Delete(TEntity entityToDelete)
            {
                if (context.Entry(entityToDelete).State == EntityState.Detached)
                {
                    dbSet.Attach(entityToDelete);
                }
                dbSet.Remove(entityToDelete);
            }
    
            public virtual void Update(TEntity entityToUpdate)
            {
                dbSet.Attach(entityToUpdate);
                context.Entry(entityToUpdate).State = EntityState.Modified;
            }
    
            public virtual IEnumerable<TEntity> GetWithRawSql(string query, params object[] parameters)
            {
                return dbSet.SqlQuery(query, parameters).ToList();
            }
        }
    Uso la seguente classe per l'iterazione con il database

    In questa c'è la funzione "GetByID" che mi recupera il dato TEntity dall'id

    Come posso implementare una funzione "GetByValue" in modo tale che mi restituisca sempre il dato TEntity però dal valore di una colonna???


    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    ma hai gia la Get alla quale gli puoi passare una lambda expression...

  3. #3
    Utente di HTML.it L'avatar di EnSa
    Registrato dal
    Apr 2009
    Messaggi
    191
    è vero scusami

    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.