Synchronization code

This commit is contained in:
sunkaixuan 2023-04-18 12:39:50 +08:00
parent c045b95ae7
commit 9578610223
2 changed files with 20 additions and 0 deletions

View File

@ -20,6 +20,25 @@ namespace SqlSugar
_Includes<T, TReturn1>(this.Context, include1); _Includes<T, TReturn1>(this.Context, include1);
return this; return this;
} }
public ISugarQueryable<T> IncludesByNameString(string navMemberName)
{
var navs = this.EntityInfo.Columns.Where(it => it.Navigat != null&&it.PropertyName.EqualCase(navMemberName)).ToList();
foreach (var item in navs)
{
var properyType = item.PropertyInfo.PropertyType;
var properyItemType = properyType;
if (properyType.FullName.IsCollectionsList())
{
properyItemType = properyType.GetGenericArguments()[0];
}
var exp = ExpressionBuilderHelper.CreateExpressionSelectField(typeof(T), item.PropertyName, properyType);
var method = this.GetType().GetMethods().Where(it => it.Name == "IncludesByExpression")
.First()
.MakeGenericMethod(properyItemType);
method.Invoke(this, new object[] { exp });
}
return this;
}
public ISugarQueryable<T> IncludesAllFirstLayer(params string[] ignoreProperyNameList) public ISugarQueryable<T> IncludesAllFirstLayer(params string[] ignoreProperyNameList)
{ {
var navs=this.EntityInfo.Columns.Where(it => it.Navigat != null).ToList(); var navs=this.EntityInfo.Columns.Where(it => it.Navigat != null).ToList();

View File

@ -16,6 +16,7 @@ namespace SqlSugar
NavISugarQueryable<T> AsNavQueryable(); NavISugarQueryable<T> AsNavQueryable();
ISugarQueryable<T> IncludesByExpression2<TReturn1, TReturn2>(Expression include1, Expression include2); ISugarQueryable<T> IncludesByExpression2<TReturn1, TReturn2>(Expression include1, Expression include2);
ISugarQueryable<T> IncludesByExpression<TReturn1>(Expression include1); ISugarQueryable<T> IncludesByExpression<TReturn1>(Expression include1);
ISugarQueryable<T> IncludesByNameString(string navMemberName);
ISugarQueryable<T> IncludesAllFirstLayer(params string[] ignoreProperyNameList); ISugarQueryable<T> IncludesAllFirstLayer(params string[] ignoreProperyNameList);
ISugarQueryable<T> IncludesAllSecondLayer<TReturn1>(Expression<Func<T, TReturn1>> expression,params string[] ignoreProperyNameList); ISugarQueryable<T> IncludesAllSecondLayer<TReturn1>(Expression<Func<T, TReturn1>> expression,params string[] ignoreProperyNameList);
ISugarQueryable<T> Includes<TReturn1>(Expression<Func<T, List<TReturn1>>> include1); ISugarQueryable<T> Includes<TReturn1>(Expression<Func<T, List<TReturn1>>> include1);