Exemplo n.º 1
0
        private bool ShouldBatchCommand(ERMSDbContext dbContext, string command)
        {
            bool isBatchCommand = false;

            foreach (var item in dbContext.BatchConfiguration.Values)
            {
                if (command.Contains(item.EntityMappedTable) && item.BatchEntityCommands.ToList().Exists(c => command.Contains(c.ToString())))
                {
                    isBatchCommand = true;
                    break;
                }
            }
            return(isBatchCommand);
        }
Exemplo n.º 2
0
        public override void NonQueryExecuting(DbCommand command, DbCommandInterceptionContext <int> interceptionContext)
        {
            ERMSDbContext dbContext = interceptionContext.DbContexts.ToList().FirstOrDefault() as ERMSDbContext;

            if (dbContext == null)
            {
                return;
            }

            if (ShouldBatchCommand(dbContext, command.CommandText))
            {
                ICollection <BatchParameter> parameters = new List <BatchParameter>();
                foreach (DbParameter par in command.Parameters)
                {
                    parameters.Add(new BatchParameter(par.ParameterName, par.Value.ToString()));
                }

                dbContext.BatchQueries.Add(new BatchQuery(command.CommandText, parameters));

                interceptionContext.Result = -1;
            }

            base.NonQueryExecuting(command, interceptionContext);
        }