protected virtual void OnQueryOptimizationFailure(object sender, QueryOptimizationFailureEventArgs args)
		{
			throw new ApplicationException(args.Reason.Message, args.Reason);
		}
 private void OnOptimizationFailure(object sender, QueryOptimizationFailureEventArgs args)
 {
     _failures.Add(args.Reason);
 }
 protected override void OnQueryOptimizationFailure(object sender, QueryOptimizationFailureEventArgs args)
 {
     // do nothing as we expect some predicate to fail
 }