- 修复 Repository/DbContext 批量修改可能无效的 bug;#709

This commit is contained in:
2881099
2021-06-05 14:52:02 +08:00
parent 2b982ff350
commit 092bbe47dd
7 changed files with 63 additions and 1 deletions

View File

@ -174,6 +174,26 @@ namespace FreeSql
/// <returns></returns>
public static ICaseWhenEnd Case() => SqlExtExtensions.Case();
/// <summary>
/// case when .. then .. end
/// </summary>
/// <typeparam name="TInput"></typeparam>
/// <typeparam name="TOutput"></typeparam>
/// <param name="input"></param>
/// <param name="dict"></param>
/// <returns></returns>
public static TOutput CaseDict<TInput, TOutput>(TInput input, [RawValue] Dictionary<TInput, TOutput> dict)
{
var ec = expContext.Value;
var sb = new StringBuilder();
sb.Append("case");
foreach (var kv in dict)
sb.Append(" when ").Append(ec.ParsedContent["input"]).Append(" = ").Append(ec.FormatSql(kv.Key))
.Append(" then ").Append(ec.FormatSql(kv.Value));
sb.Append(" end");
ec.Result = sb.ToString();
return default;
}
/// <summary>
/// MySql group_concat(distinct .. order by .. separator ..)
/// </summary>
/// <param name="column"></param>

View File

@ -1232,6 +1232,16 @@
</summary>
<returns></returns>
</member>
<member name="M:FreeSql.SqlExt.CaseDict``2(``0,System.Collections.Generic.Dictionary{``0,``1})">
<summary>
case when .. then .. end
</summary>
<typeparam name="TInput"></typeparam>
<typeparam name="TOutput"></typeparam>
<param name="input"></param>
<param name="dict"></param>
<returns></returns>
</member>
<member name="M:FreeSql.SqlExt.GroupConcat(System.Object)">
<summary>
MySql group_concat(distinct .. order by .. separator ..)