private Func <Func <IRecordContext, object[], object> > GetReader(IDynamicSeparatedValueTypeMapper defaultMapper) { var source = (IMapperSource)defaultMapper; var reader = source.GetMapper(); return(() => reader.GetReader()); }
public DirectVsDynamicTester() { var directMapper = SeparatedValueTypeMapper.Define <Person>(() => new Person()); directMapper.Property(x => x.Name).ColumnName("Name"); directMapper.Property(x => x.IQ).ColumnName("IQ"); directMapper.Property(x => x.BirthDate).ColumnName("BirthDate"); directMapper.Property(x => x.TopSpeed).ColumnName("TopSpeed"); directMapper.Property(x => x.IsActive).ColumnName("IsActive"); this.directMapper = directMapper; var dynamicMapper = SeparatedValueTypeMapper.DefineDynamic(typeof(Person)); dynamicMapper.StringProperty("Name").ColumnName("Name"); dynamicMapper.Int32Property("IQ").ColumnName("IQ"); dynamicMapper.DateTimeProperty("BirthDate").ColumnName("BirthDate"); dynamicMapper.DecimalProperty("TopSpeed").ColumnName("TopSpeed"); dynamicMapper.BooleanProperty("IsActive").ColumnName("IsActive"); this.dynamicMapper = dynamicMapper; this.people = Enumerable.Range(0, 10000).Select(i => new Person() { Name = "Susan", IQ = 132, BirthDate = new DateTime(1984, 3, 15), TopSpeed = 10.1m }).ToArray(); }
/// <summary> /// Provides the schema to use by default when no other matches are found. /// </summary> /// <param name="typeMapper">The default schema to use.</param> public void WithDefault(IDynamicSeparatedValueTypeMapper typeMapper) { this.defaultMatcher = typeMapper == null ? nonMatcher : new TypeMapperMatcher() { TypeMapper = typeMapper, Predicate = (o) => true }; }
internal void Add(IDynamicSeparatedValueTypeMapper typeMapper, Func <object, bool> predicate) { matchers.Add(new TypeMapperMatcher() { TypeMapper = typeMapper, Predicate = predicate }); }
public void Use(IDynamicSeparatedValueTypeMapper typeMapper) { if (typeMapper == null) { throw new ArgumentNullException(nameof(typeMapper)); } selector.Add(typeMapper, predicate); }
/// <summary> /// Provides the schema to use by default when no other matches are found. /// </summary> /// <param name="typeMapper">The default schema to use.</param> public void WithDefault(IDynamicSeparatedValueTypeMapper typeMapper) { defaultMapper = typeMapper; }
/// <summary> /// Provides the schema to use by default when no other matches are found. /// </summary> /// <param name="typeMapper">The default type mapper to use.</param> public void WithDefault <TEntity>(ISeparatedValueTypeMapper <TEntity> typeMapper) { defaultMapper = (IDynamicSeparatedValueTypeMapper)typeMapper; }