public CrudRepository(IMongoDatabase database, IEntityKeyAccossor keyAccossor)
 {
     _database    = database;
     _keyAccossor = keyAccossor;
     _tableName   = typeof(TEntity).Name;
     Collection.EnsureIndexes();
 }
        public ICrudRepository <TEntity, TKey> Get <TEntity, TKey>(IEntityKeyAccossor keyAccossor)
            where TEntity : class, new()
        {
            var t = typeof(TEntity);

            if (_crudRepositories.ContainsKey(t))
            {
                return(_crudRepositories[t] as ICrudRepository <TEntity, TKey>);
            }

            var name      = t.Name.ToLower();
            var attribute = t.GetCustomAttribute(typeof(ReadOptimizedAttribute));
            var repo      = attribute != null
                ? new DocumentCrudRepository <TEntity, TKey>(_repository.Init <List <TEntity> >(Path.Combine(_conn, name + ".json")).Result, keyAccossor)
                : new DocumentCollectionCrudRepository <TEntity, TKey>(_repository.InitCollection <TEntity>(Path.Combine(_conn, name)).Result, keyAccossor) as ICrudRepository <TEntity, TKey>;

            _crudRepositories.Add(t, repo);

            return(repo);
        }
 public DbSetRepository(DbContext context, IEntityKeyAccossor keyAccossor)
 {
     _repository  = context.Set <TEntity>();
     _context     = context;
     _keyAccossor = keyAccossor;
 }
Exemple #4
0
 public DocumentCrudRepository(IDocument <List <TEntity> > collection, IEntityKeyAccossor keyAccossor)
 {
     _keyAccossor = keyAccossor;
     Collection   = collection;
 }
 public CrudRepositoryProxy(DocumentRepositoryFactory factory, IEntityKeyAccossor keyAccossor)
 {
     _repository = factory.Get <TEntity, TKey>(keyAccossor);
 }