mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-24 07:22:57 +08:00
Update Queryable.ToParentList
This commit is contained in:
parent
c5ffc1cea8
commit
5a6025282a
@ -145,7 +145,7 @@ namespace OrmTest
|
|||||||
db.Insertable(new Tree() { Id = 12, Name = "child2",ParentId=1 }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 12, Name = "child2",ParentId=1 }).ExecuteCommand();
|
||||||
db.Insertable(new Tree() { Id = 2, Name = "root" }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 2, Name = "root" }).ExecuteCommand();
|
||||||
db.Insertable(new Tree() { Id = 22, Name = "child3", ParentId = 2 }).ExecuteCommand();
|
db.Insertable(new Tree() { Id = 22, Name = "child3", ParentId = 2 }).ExecuteCommand();
|
||||||
|
db.Insertable(new Tree() { Id = 222, Name = "child222", ParentId = 22 }).ExecuteCommand();
|
||||||
// Same property name mapping,Both entities have parentId
|
// Same property name mapping,Both entities have parentId
|
||||||
var list = db.Queryable<Tree>().Mapper(it => it.Parent, it => it.ParentId).ToList();
|
var list = db.Queryable<Tree>().Mapper(it => it.Parent, it => it.ParentId).ToList();
|
||||||
|
|
||||||
@ -184,6 +184,11 @@ namespace OrmTest
|
|||||||
itemModel.Items = allItems.Where(it => it.OrderId==itemModel.Id).ToList();//Every time it's executed
|
itemModel.Items = allItems.Where(it => it.OrderId==itemModel.Id).ToList();//Every time it's executed
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
var tree = db.Queryable<Tree>().ToTree(it => it.Child, it => it.ParentId, 0);
|
||||||
|
var parentList = db.Queryable<Tree>().ToParentList(it => it.ParentId, 22);
|
||||||
|
var parentList2 = db.Queryable<Tree>().ToParentList(it => it.ParentId, 222);
|
||||||
|
var parentList3 = db.Queryable<Tree>().ToParentList(it => it.ParentId, 2);
|
||||||
Console.WriteLine("#### End Start ####");
|
Console.WriteLine("#### End Start ####");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -800,7 +800,7 @@ namespace SqlSugar
|
|||||||
List<T> result = new List<T>() { };
|
List<T> result = new List<T>() { };
|
||||||
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||||
Check.Exception(entity.Columns.Where(it => it.IsPrimarykey).Count() == 0, "No Primary key");
|
Check.Exception(entity.Columns.Where(it => it.IsPrimarykey).Count() == 0, "No Primary key");
|
||||||
var parentIdName = (parentIdExpression as MemberExpression).Member.Name;
|
var parentIdName =UtilConvert.ToMemberExpression((parentIdExpression as LambdaExpression).Body).Member.Name;
|
||||||
var ParentInfo = entity.Columns.First(it => it.PropertyName == parentIdName);
|
var ParentInfo = entity.Columns.First(it => it.PropertyName == parentIdName);
|
||||||
var parentPropertyName= ParentInfo.DbColumnName;
|
var parentPropertyName= ParentInfo.DbColumnName;
|
||||||
var current = this.Context.Queryable<T>().InSingle(primaryKeyValue);
|
var current = this.Context.Queryable<T>().InSingle(primaryKeyValue);
|
||||||
@ -825,7 +825,7 @@ namespace SqlSugar
|
|||||||
List<T> result = new List<T>() { };
|
List<T> result = new List<T>() { };
|
||||||
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||||
Check.Exception(entity.Columns.Where(it => it.IsPrimarykey).Count() == 0, "No Primary key");
|
Check.Exception(entity.Columns.Where(it => it.IsPrimarykey).Count() == 0, "No Primary key");
|
||||||
var parentIdName = (parentIdExpression as MemberExpression).Member.Name;
|
var parentIdName = UtilConvert.ToMemberExpression((parentIdExpression as LambdaExpression).Body).Member.Name;
|
||||||
var ParentInfo = entity.Columns.First(it => it.PropertyName == parentIdName);
|
var ParentInfo = entity.Columns.First(it => it.PropertyName == parentIdName);
|
||||||
var parentPropertyName = ParentInfo.DbColumnName;
|
var parentPropertyName = ParentInfo.DbColumnName;
|
||||||
var current =await this.Context.Queryable<T>().InSingleAsync(primaryKeyValue);
|
var current =await this.Context.Queryable<T>().InSingleAsync(primaryKeyValue);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
namespace SqlSugar
|
namespace SqlSugar
|
||||||
{
|
{
|
||||||
@ -116,5 +117,17 @@ namespace SqlSugar
|
|||||||
}
|
}
|
||||||
return reval;
|
return reval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal static MemberExpression ToMemberExpression(Expression parentIdExpression)
|
||||||
|
{
|
||||||
|
if (parentIdExpression is UnaryExpression)
|
||||||
|
{
|
||||||
|
return (parentIdExpression as UnaryExpression).Operand as MemberExpression;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return parentIdExpression as MemberExpression;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user