protected virtual IEnumerable <TId> OnGetIds <T, TId>(Expression <Func <T, bool> > predicate) where T : class { Ensure.That(predicate, "predicate").IsNotNull(); var structureSchema = OnUpsertStructureSchema <T>(); var queryBuilder = Db.ProviderFactory.GetQueryBuilder <T>(Db.StructureSchemas); queryBuilder.Where(predicate); var query = queryBuilder.Build(); var sql = QueryGenerator.GenerateQueryReturningStrutureIds(query); return(DbClient.GetStructureIds <TId>(structureSchema, sql)); }
public virtual ISession DeleteByQuery <T>(Expression <Func <T, bool> > predicate) where T : class { Try(() => { Ensure.That(predicate, "predicate").IsNotNull(); CacheConsumeMode = CacheConsumeModes.DoNotUpdateCacheWithDbResult; var structureSchema = OnUpsertStructureSchema <T>(); Db.CacheProvider.ClearByType(structureSchema); var queryBuilder = Db.ProviderFactory.GetQueryBuilder <T>(Db.StructureSchemas); queryBuilder.Where(predicate); var query = queryBuilder.Build(); var sql = QueryGenerator.GenerateQueryReturningStrutureIds(query); DbClient.DeleteByQuery(sql, structureSchema); InternalEvents.NotifyOnDeleted(this, structureSchema, query); }); return(this); }