FluentData/Command/Queries/QueryNoAutoMapHandler.cs

(完整代码) 953B

using System;
using System.Collections.Generic;

namespace FluentData
{
	internal class QueryNoAutoMapHandler<TEntity>
	{
		internal TList QueryNoAutoMap<TList>(DbCommandData data,
			Func<IDataReader, TEntity> customMapperReader,
			Func<dynamic, TEntity> customMapperDynamic)
			where TList : IList<TEntity>
		{
			var items = (TList) data.ContextData.EntityFactory.Create(typeof(TList));

			DynamicTypAutoMapper dynamicAutoMapper = null;

			while (data.Reader.Read())
			{
				var item = default(TEntity);

				if (customMapperReader != null)
				{
					item = customMapperReader(data.Reader);
				}
				else if (customMapperDynamic != null)
				{
					if (dynamicAutoMapper == null)
						dynamicAutoMapper = new DynamicTypAutoMapper(data);

					var dynamicObject = dynamicAutoMapper.AutoMap();
					item = customMapperDynamic(dynamicObject);
				}

				items.Add(item);
			}

			return items;
		}
	}
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。