protected BaseRepository(IFreeSql fsql, Expression <Func <TEntity, bool> > filter, Func <string, string> asTable = null) { _ormScoped = DbContextScopedFreeSql.Create(fsql, () => _db, () => UnitOfWork); DataFilterUtil.SetRepositoryDataFilter(this, null); DataFilter.Apply("", filter); AsTable(asTable); }
protected BaseRepository(IFreeSql fsql, Expression <Func <TEntity, bool> > filter, Func <string, string> asTable = null) { Orm = fsql; DataFilterUtil.SetRepositoryDataFilter(this, null); DataFilter.Apply("", filter); AsTable(asTable); }
public static void SetRepositoryDataFilter<TEntity>(object repo, IBaseRepository<TEntity> baseRepo) where TEntity : class { var filter = baseRepo.DataFilter as DataFilter<TEntity>; DataFilterUtil.SetRepositoryDataFilter(repo, fl => { foreach (var f in filter._filters) fl.Apply<TEntity>(f.Key, f.Value.Expression); }); }
protected BaseRepository(IFreeSql fsql, Expression <Func <TEntity, bool> > filter, Func <string, string> asTable = null) { _ormScoped = DbContextScopedFreeSql.Create(fsql, () => _db, () => UnitOfWork); DataFilterUtil.SetRepositoryDataFilter(this, null); DataFilter.Apply("", filter); AsTable(asTable); fsql.GlobalFilter.GetFilters().ForEach(gf => { (DataFilter as DataFilter <TEntity>)._filtersByOrm.TryAdd(gf.Name, new DataFilter <TEntity> .FilterItemByOrm { Filter = gf, IsEnabled = true }); }); }
public override object Set(Type entityType) { if (_dicSet.ContainsKey(entityType)) { return(_dicSet[entityType]); } var tb = _orm.CodeFirst.GetTableByEntity(entityType); if (tb == null) { return(null); } object repos = _repos; if (entityType != typeof(TEntity)) { var filter = _repos.DataFilter as DataFilter <TEntity>; repos = Activator.CreateInstance(typeof(DefaultRepository <,>).MakeGenericType(entityType, typeof(int)), _repos.Orm); (repos as IBaseRepository).UnitOfWork = _repos.UnitOfWork; DataFilterUtil.SetRepositoryDataFilter(repos, fl => { foreach (var f in filter._filters) { fl.Apply <TEntity>(f.Key, f.Value.Expression); } }); } var sd = Activator.CreateInstance(typeof(RepositoryDbSet <>).MakeGenericType(entityType), repos); if (entityType != typeof(object)) { _dicSet.Add(entityType, sd); } return(sd); }