public async Task <T> GetAsync(Object pkValue) { Type t = typeof(T); String name = EntityTableMapper.GetPkColumn(t); Expression <Func <T, Boolean> > expression = PropertyValueExpression <T> .BuildExpression(name, pkValue); return(await m_executeBatch.QueryAsync(m_query.Select().Where(expression).End())); }
public async Task <IEnumerable <Tuple <T, K, P> > > ExecuteReaderAsync <K, P>(IBatch batch, List <ColumnRelevanceMapper> mapper) where K : IEntity, new() where P : IEntity, new() { if (SqlExecuteExtensionAction.Instance.BatchAction != null) { SqlExecuteExtensionAction.Instance.AddContext(batch); } List <Tuple <T, K, P> > entitybuffer = new List <Tuple <T, K, P> >(128); using (var Connection = Create.Invoke()) { var reader = await Connection.ExecuteReaderAsync(batch.SqlBuilder, batch.DynamicParameters, commandTimeout : 3600); while (reader.Read()) { T t = new T(); Type t1 = typeof(T); K k = new K(); Type k1 = typeof(K); P p = new P(); Type p1 = typeof(P); for (Int32 i = 0; i < reader.FieldCount; i++) { Object obj = reader.GetValue(i); if (obj != null) { ColumnRelevanceMapper column = mapper[i]; if (column.TableName == t1) { PropertyValueExpression <T> .SetValue(t, column.ColumnName, obj); } else if (column.TableName == k1) { PropertyValueExpression <K> .SetValue(k, column.ColumnName, obj); } else { PropertyValueExpression <P> .SetValue(p, column.ColumnName, obj); } } } Tuple <T, K, P> tuple = new Tuple <T, K, P>(t, k, p); entitybuffer.Add(tuple); } } return(entitybuffer); }
public override Expression Clone() { return(new OrderByCollectionExpression((CollectionExpression <OrderByExpression>)PropertyValueExpression.Clone())); }