本文整理汇总了C#中NHibernate.Hql.Ast.HqlTreeBuilder.DistinctHolder方法的典型用法代码示例。如果您正苦于以下问题:C# HqlTreeBuilder.DistinctHolder方法的具体用法?C# HqlTreeBuilder.DistinctHolder怎么用?C# HqlTreeBuilder.DistinctHolder使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NHibernate.Hql.Ast.HqlTreeBuilder
的用法示例。
在下文中一共展示了HqlTreeBuilder.DistinctHolder方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildFromArray
private HqlTreeNode BuildFromArray(Array valueArray, HqlTreeBuilder treeBuilder)
{
var elementType = valueArray.GetType().GetElementType();
if (!elementType.IsValueType && elementType != typeof(string))
throw new ArgumentException("Only primitives and strings can be used");
Type enumUnderlyingType = elementType.IsEnum ?
Enum.GetUnderlyingType(elementType) : null;
var variants = new HqlExpression[valueArray.Length];
for (int index = 0; index < valueArray.Length; index++)
{
var variant = valueArray.GetValue(index);
var val = variant;
if (elementType.IsEnum)
val = Convert.ChangeType(variant, enumUnderlyingType);
variants[index] = treeBuilder.Constant(val);
}
return treeBuilder.DistinctHolder(variants);
}