Beispiel #1
0
 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);
 }
Beispiel #2
0
 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);
     });
 }
Beispiel #4
0
        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
                });
            });
        }
Beispiel #5
0
        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);
        }