public Table GetTable(Type type) { var table = new Table(); Parallel.Invoke( () => table.TableName = GetTableName(type), () => table.Fields = _FieldMapper.GetFields(type).Where(f => !f.IsCollection).ToList() ); Parallel.Invoke( () => table.CollectionFields = _FieldMapper.GetFields(type).Where(f => f.IsCollection).ToList(), () => table.KeyFields = table.Fields.Where(f => f.IsKey).ToList(), () => table.FieldsByName = table.Fields.ToDictionary(f => f.FieldName.ToLower()), () => table.FieldsByBind = table.Fields.Where(f => !String.IsNullOrEmpty(f.BindedTo)).ToDictionary( f => f.FieldName + f.BindedTo.ToLower()), () => table.FieldsByPropertyName = table.Fields.ToDictionary(f => f.PropertyName.ToLower()) ); Parallel.ForEach(table.Fields, f => f.Table = table); table.CommandsHolder = _SqlCommands; table.CommandsHolder.Table = table; return table; }
/// <summary> /// Initializes a new instance of the <see cref="SqlQueryBuilder" /> class. /// </summary> /// <param name="field">The field that should return a query.</param> public SqlQueryBuilder(Field field) { _Field = field; _Parameters = new List<Parameter>(); Type ienumType = field.FieldType.GetGenericArguments().FirstOrDefault(); _Table = Engine.GetTable(ienumType); }
public ConcurrentDataReader(IDataReader reader, Table entityTable) { _EntityTable = entityTable; _Reader = reader; _data = new List<IDictionary<String, Object>>(); }