/// <summary> /// Convert an object into an IEnumerable<DbParameter> /// </summary> /// <param name="parameters"></param> /// <param name="cmd"></param> /// <returns></returns> public static IEnumerable<DbParameter> ToSqlParameters(this object parameters, DbCommand cmd) { if (parameters is ExpandoObject) { var dict = parameters as IDictionary<string, object>; foreach (var key in dict.Keys) yield return cmd.GetParameter(key, dict[key], dict[key].GetType()); } else { foreach (var propInfo in parameters.GetType().GetProperties().Where(x => x.CanRead)) yield return cmd.GetParameter(parameters, propInfo); } }