public static T MapItem <T>(this IMapper <ReflectedEntityKey> mapper, EntityFetchExpression fetchExpression, IDataReader dataReader) where T : ClassEntity { return(mapper.MapItem <T>(ReflectedEntityKey.EntityKey <T>(), fetchExpression, dataReader)); }
public static IEnumerable <T> MapItems <T>(this IMapper <ReflectedEntityKey> mapper, EntityFetchExpression fetchExpression, IDataReader dataReader) where T : ClassEntity { while (dataReader.Read()) { yield return(mapper.MapItem <T>(fetchExpression, dataReader)); } }
public T MapItem <T>(ReflectedEntityKey key, EntityFetchExpression fetchExpression, IDataReader dataReader) where T : IEntity { IEntityDefinition definition = _entityDefinitionProvider.GetEntityDefinition(key); T entity = (T)definition.GenerateEntity(); IReadOnlyList <IFieldDefinition> fields = fetchExpression.Fields(_entityDefinitionProvider); for (var i = 0; i < fields.Count; i++) { ReflectionFieldDefinition fieldDefinition = (ReflectionFieldDefinition)fields[i]; Field field = fieldDefinition.GetField(entity); var valueConverter = Converter(fieldDefinition); field.Value = valueConverter(dataReader.GetValue(i)); } return(default(T)); }
public void TestAllFieldsExpression() { List <IFieldDefinition> fieldsList = new List <IFieldDefinition>() { Mock.Of <IFieldDefinition>(), Mock.Of <IFieldDefinition>(), Mock.Of <IFieldDefinition>(), Mock.Of <IFieldDefinition>(), }; IEntityKey entityKey = new NamedKey("test"); var moqEntityDefinition = new Mock <IEntityDefinition>(); moqEntityDefinition.SetupGet(definition => definition.FieldDefinitions).Returns(fieldsList); var moqEntityProvider = new Mock <IEntityDefinitionProvider>(); moqEntityProvider.Setup(provider => provider.GetEntityDefinition(It.IsAny <IEntityKey>())) .Returns(moqEntityDefinition.Object); var fetchExpression = EntityFetchExpression.AllFieldsExpression(entityKey); Assert.AreSame(entityKey, fetchExpression.EntityKey); CollectionAssert.AreEqual(fieldsList, fetchExpression.Fields(moqEntityProvider.Object)); }