/// <summary> /// This function must be used with ToParams /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="columns"></param> /// <param name="entity"></param> /// <param name="parameters"> Parameters returned by ToParams method </param> /// <returns></returns> public static List <DbParameter> UpdateParams <TEntity>(this IColumnCollection <TEntity> columns, TEntity entity, List <DbParameter> parameters) { foreach (var entry in columns.Zip(parameters, (c, p) => new { Column = c, Paramater = p })) { entry.Paramater.Value = entry.Column.GetField(entity); } return(parameters); }
/// <summary> /// Convert columns to SqlParamater collection with values /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="columns"></param> /// <param name="factory"></param> /// <param name="entity"></param> /// <returns></returns> public static List <DbParameter> ToParams <TEntity>(this IColumnCollection <TEntity> columns, Func <IColumnMapping <TEntity>, bool> filter, IDbProviderParam factory, TEntity entity) { var parameters = new List <DbParameter>(); foreach (var c in columns) { if (filter(c)) { var value = c.GetField(entity); parameters.Add(factory.Create(c.Param, value, c.FieldType)); } } return(parameters); }
/// <summary> /// Convert columns to SqlParamater collection with values /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="columns"></param> /// <param name="factory"></param> /// <param name="entity"></param> /// <returns></returns> public static List <DbParameter> ToParams <TEntity>(this IColumnCollection <TEntity> columns, IDbProviderParam factory, TEntity entity) { return(columns.ToParams(column => true, factory, entity)); }