public bool Equals(CriteriaNamedParameterSpecification other)
		{
			if (ReferenceEquals(null, other))
			{
				return false;
			}
			if (ReferenceEquals(this, other))
			{
				return true;
			}
			return Equals(other.name, name);
		}
		private IEnumerable<Parameter> NewQueryParameter(string parameterPrefix, TypedValue parameter)
		{
			string parameterName = parameterPrefix + CollectedParameterSpecifications.Count;
			var specification = new CriteriaNamedParameterSpecification(parameterName, parameter.Type);
			collectedParameterSpecifications.Add(specification);
			namedParameters.Add(new NamedParameter(parameterName, parameter.Value, parameter.Type));
			return specification.GetIdsForBackTrack(Factory).Select(x =>
																	{
																		Parameter p = Parameter.Placeholder;
																		p.BackTrack = x;
																		return p;
																	});
		}