protected void BindArray(ICommandContext ctx, object arrayArg) { if (arrayArg == null) { return; } object[] array = arrayArg as object[]; int length = array.Length; if (length == 0) { ThrowBindOrEmbeddedParameterEmptyListException(); } Type type = null; for (int i = 0; i < length; ++i) { Object currentElement = array[i]; if (currentElement != null) { type = currentElement.GetType(); break; } } if (type == null) { ThrowBindOrEmbeddedParameterNullOnlyListException(); } ctx.AddSql("("); int bindCount = 0; for (int i = 0; i < length; ++i) { Object currentElement = array[i]; if (currentElement != null) { ++bindCount; if (bindCount == 1) // FirstElement! { ctx.AddSql(currentElement, type, _expression + bindCount); } else { ctx.AppendSql(currentElement, type, _expression + bindCount); } } } ctx.AddSql(")"); }