- 优化 UpdateJoin .Set 固定值解析;

This commit is contained in:
2881099 2023-03-24 16:15:25 +08:00
parent 561b10331f
commit b2f484dbc4
3 changed files with 29 additions and 4 deletions

View File

@ -586,6 +586,10 @@ namespace base_entity
.Join<UserGroup>((a, b) => a.GroupId == b.Id) .Join<UserGroup>((a, b) => a.GroupId == b.Id)
.Set((a, b) => a.Nickname == b.GroupName) .Set((a, b) => a.Nickname == b.GroupName)
.ExecuteAffrows(); .ExecuteAffrows();
var updatejoin03 = fsql.Update<User1>()
.Join<UserGroup>((a, b) => a.GroupId == b.Id)
.Set((a, b) => a.Nickname == "b.groupname")
.ExecuteAffrows();
var sql1c2 = fsql.Select<User1>() var sql1c2 = fsql.Select<User1>()
.GroupBy(a => new { a.Nickname, a.Avatar }) .GroupBy(a => new { a.Nickname, a.Avatar })

View File

@ -733,6 +733,15 @@
<param name="modelBuilder"></param> <param name="modelBuilder"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSqlDbContextExtensions.ApplyConfigurationsFromAssembly(FreeSql.ICodeFirst,System.Reflection.Assembly,System.Func{System.Type,System.Boolean})">
<summary>
根据Assembly扫描所有继承IEntityTypeConfiguration&lt;T&gt;的配置类
</summary>
<param name="codeFirst"></param>
<param name="assembly"></param>
<param name="predicate"></param>
<returns></returns>
</member>
<member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)"> <member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
<summary> <summary>
创建普通数据上下文档对象 创建普通数据上下文档对象

View File

@ -169,11 +169,23 @@ namespace FreeSql.Internal.CommonProvider
if (cols.Count != 1) return this; if (cols.Count != 1) return this;
var col = cols[0].Column; var col = cols[0].Column;
var columnSql = $"{_commonUtils.QuoteSqlName(col.Attribute.Name)}"; var columnSql = $"{_commonUtils.QuoteSqlName(col.Attribute.Name)}";
var valueSql = "";
_query2Provider._groupby = null; if (equalBinaryExp.Right.IsParameter())
var valueExp = Expression.Lambda<Func<T1, T2, object>>(equalBinaryExp.Right, exp.Parameters); {
_query2.GroupBy(valueExp); _query2Provider._groupby = null;
var valueSql = _query2Provider._groupby?.Remove(0, " \r\nGROUP BY ".Length); var valueExp = Expression.Lambda<Func<T1, T2, object>>(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; if (string.IsNullOrEmpty(valueSql)) return this;
switch (_orm.Ado.DataType) switch (_orm.Ado.DataType)