diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index 7f5bb550..1461666a 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -586,6 +586,10 @@ namespace base_entity .Join((a, b) => a.GroupId == b.Id) .Set((a, b) => a.Nickname == b.GroupName) .ExecuteAffrows(); + var updatejoin03 = fsql.Update() + .Join((a, b) => a.GroupId == b.Id) + .Set((a, b) => a.Nickname == "b.groupname") + .ExecuteAffrows(); var sql1c2 = fsql.Select() .GroupBy(a => new { a.Nickname, a.Avatar }) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 594fbad3..537315e2 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -733,6 +733,15 @@ + + + 根据Assembly扫描所有继承IEntityTypeConfiguration<T>的配置类 + + + + + + 创建普通数据上下文档对象 diff --git a/FreeSql/Internal/CommonProvider/UpdateJoinProvider.cs b/FreeSql/Internal/CommonProvider/UpdateJoinProvider.cs index 68076243..4825db0e 100644 --- a/FreeSql/Internal/CommonProvider/UpdateJoinProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateJoinProvider.cs @@ -169,11 +169,23 @@ namespace FreeSql.Internal.CommonProvider if (cols.Count != 1) return this; var col = cols[0].Column; var columnSql = $"{_commonUtils.QuoteSqlName(col.Attribute.Name)}"; + var valueSql = ""; - _query2Provider._groupby = null; - var valueExp = Expression.Lambda>(equalBinaryExp.Right, exp.Parameters); - _query2.GroupBy(valueExp); - var valueSql = _query2Provider._groupby?.Remove(0, " \r\nGROUP BY ".Length); + if (equalBinaryExp.Right.IsParameter()) + { + _query2Provider._groupby = null; + var valueExp = Expression.Lambda>(equalBinaryExp.Right, exp.Parameters); + _query2.GroupBy(valueExp); + valueSql = _query2Provider._groupby?.Remove(0, " \r\nGROUP BY ".Length); + } + else + { + valueSql = _commonExpression.ExpressionLambdaToSql(equalBinaryExp.Right, new CommonExpression.ExpTSC + { + isQuoteName = true, + mapType = equalBinaryExp.Right is BinaryExpression ? null : col.Attribute.MapType + }); + } if (string.IsNullOrEmpty(valueSql)) return this; switch (_orm.Ado.DataType)