mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-24 04:53:45 +08:00
Add Queryable.ToDictionary
This commit is contained in:
@@ -42,6 +42,8 @@ namespace OrmTest
|
||||
var getByWhere2 = db.Queryable<Order>().Where(it => it.Id == DateTime.Now.Year).ToList();
|
||||
var getByFuns = db.Queryable<Order>().Where(it => SqlFunc.IsNullOrEmpty(it.Name)).ToList();
|
||||
var getByFuns2 = db.Queryable<Order>().GroupBy(it => it.Name).Select(it => SqlFunc.AggregateDistinctCount(it.Price)).ToList();
|
||||
var getDicionary = db.Queryable<Order>().ToDictionary(it => it.Id, it => it.Name);
|
||||
var getDicionaryList = db.Queryable<Order>().ToDictionaryList();
|
||||
Console.WriteLine("#### Examples End ####");
|
||||
}
|
||||
|
||||
|
@@ -783,6 +783,38 @@ namespace SqlSugar
|
||||
return result;
|
||||
}
|
||||
|
||||
public Dictionary<string, object> ToDictionary(Expression<Func<T, object>> key, Expression<Func<T, object>> value)
|
||||
{
|
||||
var keyName = QueryBuilder.GetExpressionValue(key, ResolveExpressType.FieldSingle).GetResultString();
|
||||
var valueName = QueryBuilder.GetExpressionValue(value, ResolveExpressType.FieldSingle).GetResultString();
|
||||
var result = this.Select<KeyValuePair<string, object>>(keyName + "," + valueName).ToList().ToDictionary(it => it.Key.ObjToString(), it => it.Value);
|
||||
return result;
|
||||
}
|
||||
public async Task<Dictionary<string, object>> ToDictionaryAsync(Expression<Func<T, object>> key, Expression<Func<T, object>> value)
|
||||
{
|
||||
var keyName = QueryBuilder.GetExpressionValue(key, ResolveExpressType.FieldSingle);
|
||||
var valueName = QueryBuilder.GetExpressionValue(value, ResolveExpressType.FieldSingle);
|
||||
var list = await this.Select<KeyValuePair<string, object>>(keyName + "," + valueName).ToListAsync();
|
||||
var result =list.ToDictionary(it => it.Key.ObjToString(), it => it.Value);
|
||||
return result;
|
||||
}
|
||||
public List<Dictionary<string, object>> ToDictionaryList()
|
||||
{
|
||||
var list = this.ToList();
|
||||
if (list == null)
|
||||
return null;
|
||||
else
|
||||
return this.Context.Utilities.DeserializeObject<List<Dictionary<string, object>>>(this.Context.Utilities.SerializeObject(list));
|
||||
}
|
||||
public async Task<List<Dictionary<string, object>>> ToDictionaryListAsync()
|
||||
{
|
||||
var list =await this.ToListAsync();
|
||||
if (list == null)
|
||||
return null;
|
||||
else
|
||||
return this.Context.Utilities.DeserializeObject<List<Dictionary<string, object>>>(this.Context.Utilities.SerializeObject(list));
|
||||
}
|
||||
|
||||
public virtual List<T> ToList()
|
||||
{
|
||||
InitMapping();
|
||||
|
@@ -122,6 +122,12 @@ namespace SqlSugar
|
||||
Task<TResult> AvgAsync<TResult>(Expression<Func<T, TResult>> expression);
|
||||
|
||||
List<T> ToList();
|
||||
|
||||
Dictionary<string, object> ToDictionary(Expression<Func<T, object>> key, Expression<Func<T, object>> value);
|
||||
Task<Dictionary<string, object>> ToDictionaryAsync(Expression<Func<T, object>> key, Expression<Func<T, object>> value);
|
||||
List<Dictionary<string, object>> ToDictionaryList();
|
||||
Task<List<Dictionary<string, object>>> ToDictionaryListAsync();
|
||||
|
||||
T[] ToArray();
|
||||
Task<List<T>> ToListAsync();
|
||||
|
||||
|
Reference in New Issue
Block a user