public object ExecuteLinqCommand(EntitySession session, LinqCommand command) { object result = null; if (Cache != null && command.Operation == LinqOperation.Select && Cache.TryExecuteSelect(session, command, out result)) { return(result); } result = Database.ExecuteLinqCommand(session, command); //If we are returning entities, cache them; if updating - invalidate if (Cache != null) { Cache.OnCommandExecuted(session, command, result); } return(result); }