/// <summary> /// Set entity properties /// </summary> /// <param name="reader"></param> /// <param name="entity"></param> public void SetEntity(IDataReader reader, T entity) { Expect.IsNotNull(reader, nameof(reader)); Expect.IsNotNull(entity, nameof(entity)); if (reader.FieldCount != _fieldReaders.Length) { throw ExceptionBuilder.Mapping(FrameworkStrings.ErrorFieldCountNotMatch, reader.FieldCount, _fieldReaders.Length); } for (int i = 0; i < _fieldReaders.Length; i++) { var fieldReader = _fieldReaders[i]; var value = ParamConverter.ToClrValue(reader[i], fieldReader.PropertyType); fieldReader.SetValue(entity, value); } }
public void ToClrValue_Others_AsIs(object dbValue, Type targetType, object clrValue) { Assert.AreEqual(clrValue, ParamConverter.ToClrValue(dbValue, targetType)); }
public void ToClrValue_TargetIsNulltableEnum_SourceInt_ShouldReturn() { var dbValue = (int)FileMode.Create; Assert.AreEqual(FileMode.Create, ParamConverter.ToClrValue(dbValue, typeof(FileMode?))); }
public void ToClrValue_TargetIsEnum_SourceNotInt_ShouldThrow() { Assert.Throws <NotSupportedException>(() => ParamConverter.ToClrValue("abc", typeof(FileMode))); }
public void ToClrValue_TargetIsEnum_ShouldConvertInt() { object dbValue = (int)FileMode.Create; Assert.AreEqual(FileMode.Create, ParamConverter.ToClrValue(dbValue, typeof(FileMode))); }
public void ToClrValue_ParamDbNull_ShouldReturnNull() { Assert.IsNull(ParamConverter.ToClrValue(DBNull.Value, typeof(string))); }