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));
        }
Example #2
0
        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);
        }