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())
|
.Where(it => it.SchoolA.TeacherList.Any())
|
||||||
.ToList();
|
.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>()
|
var list3 = db.Queryable<StudentA>()
|
||||||
.Includes(x => x.SchoolA, x => x.RoomList)//2个参数就是 then Include
|
.Includes(x => x.SchoolA, x => x.RoomList)//2个参数就是 then Include
|
||||||
|
|||||||
@@ -110,14 +110,14 @@ namespace SqlSugar
|
|||||||
foreach (var item in joinInfos)
|
foreach (var item in joinInfos)
|
||||||
{
|
{
|
||||||
var shortName = item.ThisEntityInfo.DbTableName + i;
|
var shortName = item.ThisEntityInfo.DbTableName + i;
|
||||||
EntityColumnInfo pkColumn ;
|
EntityColumnInfo pkColumn;
|
||||||
EntityColumnInfo navColum ;
|
EntityColumnInfo navColum;
|
||||||
if (index == 0)
|
if (index == 0)
|
||||||
{
|
{
|
||||||
pkColumn = item.ThisEntityInfo.Columns.FirstOrDefault(it => it.PropertyName == item.Nav.Name);
|
pkColumn = item.ThisEntityInfo.Columns.FirstOrDefault(it => it.PropertyName == item.Nav.Name);
|
||||||
navColum = item.ParentEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
navColum = item.ParentEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pkColumn = item.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
pkColumn = item.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
|
||||||
navColum = item.ParentEntityInfo.Columns.FirstOrDefault(it => it.PropertyName == item.Nav.Name);
|
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);
|
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}");
|
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.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} ) ";
|
MapperSql.Sql = $"( {queryable.ToSql().Key} ) ";
|
||||||
if ((memberInfo.Expression as MethodCallExpression).Method.Name == "Any")
|
if ((memberInfo.Expression as MethodCallExpression).Method.Name == "Any")
|
||||||
{
|
{
|
||||||
@@ -146,7 +147,21 @@ namespace SqlSugar
|
|||||||
return MapperSql;
|
return MapperSql;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#region Helper
|
#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)
|
private string GetWhereSql(MethodCallExpression memberExp)
|
||||||
{
|
{
|
||||||
var whereExp = memberExp.Arguments[1];
|
var whereExp = memberExp.Arguments[1];
|
||||||
|
|||||||
Reference in New Issue
Block a user