mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
async Queryable.Mapper bug
This commit is contained in:
parent
3a03456593
commit
326cffa0bc
@ -12,51 +12,16 @@ namespace OrmTest.Demo
|
||||
{
|
||||
var db = GetInstance();
|
||||
|
||||
//auto fill ViewModelStudent3
|
||||
var s11 = db.Queryable<Student, School>((st, sc) => st.SchoolId == sc.Id)
|
||||
.Select<ViewModelStudent3>().ToList();
|
||||
|
||||
|
||||
var s12 = db.Queryable<Student, School>((st, sc) => st.SchoolId == sc.Id).Select<ViewModelStudent3>()
|
||||
|
||||
.Mapper((it, cache) =>
|
||||
{
|
||||
|
||||
var allSchools = cache.GetListByPrimaryKeys<School>(vmodel => vmodel.SchoolId);
|
||||
//sql select shool where id (in(ViewModelStudent3[0].SchoolId , ViewModelStudent3[1].SchoolId...)
|
||||
|
||||
//Equal to allSchools
|
||||
//var allSchools2= cache.Get(list =>
|
||||
// {
|
||||
// var ids=list.Select(i => it.SchoolId).ToList();
|
||||
// return db.Queryable<School>().In(ids).ToList();
|
||||
//});Complex writing metho
|
||||
|
||||
|
||||
/*one to one*/
|
||||
//Good performance
|
||||
it.School = allSchools.FirstOrDefault(i => i.Id == it.SchoolId);
|
||||
|
||||
//Poor performance.
|
||||
//it.School = db.Queryable<School>().InSingle(it.SchoolId);
|
||||
|
||||
|
||||
/*one to many*/
|
||||
it.Schools = allSchools.Where(i => i.Id == it.SchoolId).ToList();
|
||||
|
||||
|
||||
/*C# syntax conversion*/
|
||||
it.Name = it.Name == null ? "null" : it.Name;
|
||||
|
||||
}).ToList();
|
||||
|
||||
|
||||
var s13 = db.Queryable<Student, School>((st, sc) => st.SchoolId == sc.Id).Select<ViewModelStudent3>()
|
||||
var x = db.Queryable<Student>()
|
||||
|
||||
.Mapper((it, cache) =>
|
||||
{
|
||||
it.Schools = db.Queryable<School>().Where(i => i.Id == it.SchoolId).ToList();
|
||||
}).ToList();
|
||||
|
||||
it.Name = "xx";
|
||||
}).ToListAsync();
|
||||
|
||||
x .Wait();
|
||||
|
||||
|
||||
}
|
||||
|
@ -1298,6 +1298,10 @@ namespace SqlSugar
|
||||
var asyncContext = this.Context.Utilities.CopyContext(true);
|
||||
asyncContext.CurrentConnectionConfig.IsAutoCloseConnection = true;
|
||||
var asyncQueryable = asyncContext.Queryable<ExpandoObject>().Select<T>(string.Empty).WithCacheIF(IsCache, CacheTime);
|
||||
if (this.MapperAction != null)
|
||||
asyncQueryable.Mapper(MapperAction);
|
||||
if (this.MapperActionWithCache != null)
|
||||
asyncQueryable.Mapper(MapperActionWithCache);
|
||||
CopyQueryBuilder(asyncQueryable.QueryBuilder); return asyncQueryable;
|
||||
}
|
||||
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user