Ejemplo n.º 1
0
 /// <summary>
 /// IDataReader의 컬럼명의 값을 가져옵니다. 없으면 <paramref name="valueFactory"/>의 반환값을 반환합니다.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="reader"></param>
 /// <param name="index"></param>
 /// <param name="valueFactory"></param>
 /// <returns></returns>
 public static T?AsValueNullable <T>(this IDataReader reader, int index, Func <T?> valueFactory = null) where T : struct
 {
     valueFactory = valueFactory ?? (() => default(T?));
     return
         (With.TryFunction(
              () => reader.IsDBNull(index) ? null : ConvertTool.AsValueNullable <T>(reader.GetValue(index), valueFactory),
              exceptionAction:
              ex => {
         if (IsInfoEnabled)
         {
             log.Info("IDataReader로부터 값을 얻는데 실패했습니다. index=[{0}]", index);
             log.Info(ex);
         }
     }));
 }