Beispiel #1
0
        private int EntitySet <T, E>(T dto) where T : DTO.DTOBase
        {
            using (var context = new CharityEntities())
            {
                if (dto.ID == 0)
                {
                    dto.CreateDate = DateTime.Now;
                    dto.Active     = true;
                }
                else
                {
                    dto.ModifyDate = DateTime.Now;
                }

                E   entity = Map <T, E>(dto);
                var entry  = context.Entry(entity);
                entry.State = dto.ID == 0 ? System.Data.Entity.EntityState.Added : System.Data.Entity.EntityState.Modified;
                if (dto.ID > 0)
                {
                    entry.Property("CreateDate").IsModified = false;
                    entry.Property("CreateUser").IsModified = false;
                }
                context.SaveChanges();
                return((int)entry.Property("ID").OriginalValue);
            }
        }
Beispiel #2
0
        private bool EntityDelete <T, E>(int id) where T : DTOBase
        {
            using (var context = new CharityEntities())
            {
                T dto = Activator.CreateInstance <T>();
                dto.ID         = id;
                dto.Active     = false;
                dto.ModifyDate = DateTime.Now;

                E entity = Map <T, E>(dto);

                var entry      = context.Entry(entity);
                var activeProp = entry.Property("Active");

                if (activeProp != null)
                {
                    entry.State = System.Data.Entity.EntityState.Modified;
                    foreach (var item in entity.GetType().GetProperties())
                    {
                        if (item.GetGetMethod().IsVirtual)
                        {
                            continue;
                        }
                        if (item.Name == "Active" || item.Name == "ModifyDate" || item.Name == "State" || item.Name == "ID")
                        {
                            continue;
                        }
                        var prop = entry.Property(item.Name);
                        if (prop != null)
                        {
                            prop.IsModified = false;
                        }
                    }
                }
                else
                {
                    entry.State = System.Data.Entity.EntityState.Deleted;
                }

                context.SaveChanges();
                return(true);
            }
        }