Ejemplo n.º 1
0
 public static void UpdateEntity(int id, T updatedEntity)
 {
     using (var context = new LocalDbContext())
     {
         var entitySet = context.Set <T>();
         var oldEntity = entitySet.Find(id);
         context.Entry(oldEntity).CurrentValues.SetValues(updatedEntity);
         context.SaveChanges();
     }
 }
Ejemplo n.º 2
0
        public static T AddEntity(T entity)
        {
            T newEntity;

            using (var context = new LocalDbContext())
            {
                var entitySet = context.Set <T>();
                newEntity = entitySet.Add(entity);
                context.SaveChanges();
            }
            return(newEntity);
        }
Ejemplo n.º 3
0
        public static T RemoveEntity(int id)
        {
            T entity;

            using (var context = new LocalDbContext())
            {
                var entitySet = context.Set <T>();
                entity = entitySet.Find(id);
                context.Entry(entity).State = EntityState.Deleted;
                context.SaveChanges();
            }
            return(entity);
        }
Ejemplo n.º 4
0
        public static IEnumerable <T> GetAllEntities()
        {
            IList <T> entities = new List <T>();

            using (var context = new LocalDbContext())
            {
                var entitySet = context.Set <T>();
                var query     = from entity in entitySet
                                select entity;

                foreach (var element in query)
                {
                    entities.Add(element);
                }
                // entities = query.AsEnumerable();

                var q = from t in Assembly.GetExecutingAssembly().GetTypes()
                        where t.IsClass && t.Namespace == "Backend.Models"
                        select t;

                var props = typeof(T).GetProperties().Where(p => q.Contains(p.PropertyType)).Select(p => p.Name);

                if (props.Count() == 0)
                {
                    return(entitySet.ToList());
                }

                string includeString = string.Empty;

                foreach (string name in props)
                {
                    includeString += name + ".";
                }

                includeString = includeString.Trim('.');
                // works for every entity that has a User property
                // Solution: use reflaction to find complex properties
                // and call Include(foundProp1+"."+foundProp2+...)
                entities = entitySet
                           .Include(includeString)
                           .ToList();
            }
            return(entities);
        }