public static T AddIfNotExistsOrModifyReference <T, ProjectDBContext, ProjectDBContainer>(this DbSet <T> dbSet, ProjectDBContainer dbContainer, T entity, Expression <Func <T, bool> > predicate, GenericRepositoryParmeter param) where T : ObjectRemap, new() where ProjectDBContext : DbContext, new() where ProjectDBContainer : TDBContainer <ProjectDBContext>, new() { var exists = dbSet.Any(predicate); T ret = null; if (!exists) { ret = dbSet.Add(entity); } else { IQueryable <T> list = dbSet.Where(predicate); if (list.Count() == 1) { T item = list.First(); TGenericRepository <T, ProjectDBContext, ProjectDBContainer> repository = new TGenericRepository <T, ProjectDBContext, ProjectDBContainer>(dbContainer); repository.RemapReferences(item, entity, param); } else { throw new Exception("PB multi value in Initializer."); } } return(ret); }
/// <summary> /// Initializes a new instance of the <see cref="TServiceDTO{DTO, Entity, DBContext}"/> class. /// </summary> public TServiceDTO() { Repository = new TGenericRepository <Entity, DBContext>(); }