mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-08 02:14:53 +08:00
Update exp to sql
This commit is contained in:
@@ -83,6 +83,10 @@ namespace OrmTest
|
||||
.Where(it => it.SchoolA.TeacherList.Any())
|
||||
.ToList();
|
||||
|
||||
var list3333 = db.Queryable<StudentA>()
|
||||
.Includes(it => it.SchoolA, it => it.TeacherList)
|
||||
.Where(it => it.SchoolA.TeacherList.Any(z=>z.Id>2))
|
||||
.ToList();
|
||||
|
||||
var list3 = db.Queryable<StudentA>()
|
||||
.Includes(x => x.SchoolA, x => x.RoomList)//2个参数就是 then Include
|
||||
|
||||
@@ -110,14 +110,14 @@ namespace SqlSugar
|
||||
foreach (var item in joinInfos)
|
||||
{
|
||||
var shortName = item.ThisEntityInfo.DbTableName + i;
|
||||
EntityColumnInfo pkColumn ;
|
||||
EntityColumnInfo navColum ;
|
||||
EntityColumnInfo pkColumn;
|
||||
EntityColumnInfo navColum;
|
||||
if (index == 0)
|
||||
{
|
||||
pkColumn = item.ThisEntityInfo.Columns.FirstOrDefault(it => it.PropertyName == item.Nav.Name);
|
||||
navColum = item.ParentEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
pkColumn = item.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||
navColum = item.ParentEntityInfo.Columns.FirstOrDefault(it => it.PropertyName == item.Nav.Name);
|
||||
@@ -137,6 +137,7 @@ namespace SqlSugar
|
||||
var PkColumn = last.ParentEntityInfo.Columns.FirstOrDefault(it => it.PropertyName == last.Nav.Name);
|
||||
Check.ExceptionEasy(PkColumn == null, $"{ last.ParentEntityInfo.EntityName} no found {last.Nav.Name}", $"{ last.ParentEntityInfo.EntityName} 不存在 {last.Nav.Name}");
|
||||
queryable.Where($" {this.shorName}.{ queryable.SqlBuilder.GetTranslationColumnName(PkColumn.DbColumnName)} = {masterShortName}.{queryable.SqlBuilder.GetTranslationColumnName(FirstPkColumn.DbColumnName)} ");
|
||||
queryable.WhereIF(this.whereSql.HasValue(), GetWhereSql1(this.whereSql,lastShortName, joinInfos, queryable.SqlBuilder));
|
||||
MapperSql.Sql = $"( {queryable.ToSql().Key} ) ";
|
||||
if ((memberInfo.Expression as MethodCallExpression).Method.Name == "Any")
|
||||
{
|
||||
@@ -146,7 +147,21 @@ namespace SqlSugar
|
||||
return MapperSql;
|
||||
}
|
||||
|
||||
|
||||
#region Helper
|
||||
private string GetWhereSql1(string wheresql,string lastShortName, List<ExpressionItems> joinInfos,ISqlBuilder sqlBuilder)
|
||||
{
|
||||
var sql = wheresql;
|
||||
if (sql == null) return sql;
|
||||
joinInfos.Last().ThisEntityInfo.Columns.ForEach(it =>
|
||||
{
|
||||
this.whereSql = this.whereSql.Replace(sqlBuilder.GetTranslationColumnName(it.DbColumnName),
|
||||
lastShortName+"." + sqlBuilder.GetTranslationColumnName(it.DbColumnName));
|
||||
|
||||
});
|
||||
return sql;
|
||||
}
|
||||
|
||||
private string GetWhereSql(MethodCallExpression memberExp)
|
||||
{
|
||||
var whereExp = memberExp.Arguments[1];
|
||||
|
||||
Reference in New Issue
Block a user