Merge pull request #1650 from d4ilys/master

修复 UpdateJoin SetIf逻辑判断问题
This commit is contained in:
2881099 2023-10-27 21:24:31 +08:00 committed by GitHub
commit 98c761ee77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 9 deletions

View File

@ -169,6 +169,7 @@ namespace FreeSql.Internal.CommonProvider
public IUpdateJoin<T1, T2> Set(Expression<Func<T1, T2, bool>> exp) => SetIf(true, exp); public IUpdateJoin<T1, T2> Set(Expression<Func<T1, T2, bool>> exp) => SetIf(true, exp);
public IUpdateJoin<T1, T2> SetIf(bool condition, Expression<Func<T1, T2, bool>> exp) public IUpdateJoin<T1, T2> SetIf(bool condition, Expression<Func<T1, T2, bool>> exp)
{ {
if (condition == false) return this;
var body = exp?.Body; var body = exp?.Body;
var nodeType = body?.NodeType; var nodeType = body?.NodeType;
if (nodeType == ExpressionType.Convert) if (nodeType == ExpressionType.Convert)

View File

@ -154,8 +154,9 @@ public static partial class QuestDbGlobalExtensions
/// </summary> /// </summary>
/// <typeparam name="T"></typeparam> /// <typeparam name="T"></typeparam>
/// <param name="that"></param> /// <param name="that"></param>
/// <param name="dateFormat">导入时,时间格式 默认:yyyy/M/d H:mm:ss</param>
/// <returns></returns> /// <returns></returns>
public static async Task<int> ExecuteBulkCopyAsync<T>(this IInsert<T> that) where T : class public static async Task<int> ExecuteBulkCopyAsync<T>(this IInsert<T> that,string dateFormat = "yyyy/M/d H:mm:ss") where T : class
{ {
//思路通过提供的RestAPI imp实现快速复制 //思路通过提供的RestAPI imp实现快速复制
if (string.IsNullOrWhiteSpace(RestAPIExtension.BaseUrl)) if (string.IsNullOrWhiteSpace(RestAPIExtension.BaseUrl))
@ -180,7 +181,7 @@ public static partial class QuestDbGlobalExtensions
{ {
{ "name", d.Name }, { "name", d.Name },
{ "type", d.DbTypeText }, { "type", d.DbTypeText },
{ "pattern", "yyyy/M/d H:mm:ss" } { "pattern", dateFormat}
}); });
} }
else else
@ -197,7 +198,7 @@ public static partial class QuestDbGlobalExtensions
using (var writer = new StreamWriter(filePath)) using (var writer = new StreamWriter(filePath))
using (var csv = new CsvWriter(writer, CultureInfo.CurrentCulture)) using (var csv = new CsvWriter(writer, CultureInfo.CurrentCulture))
{ {
csv.WriteRecords(insert._source); await csv.WriteRecordsAsync(insert._source);
} }
var httpContent = new MultipartFormDataContent(boundary); var httpContent = new MultipartFormDataContent(boundary);
@ -213,7 +214,6 @@ public static partial class QuestDbGlobalExtensions
await client.PostAsync($"{RestAPIExtension.BaseUrl}/imp?name={name}", httpContent); await client.PostAsync($"{RestAPIExtension.BaseUrl}/imp?name={name}", httpContent);
var readAsStringAsync = await httpResponseMessage.Content.ReadAsStringAsync(); var readAsStringAsync = await httpResponseMessage.Content.ReadAsStringAsync();
var splitByLine = SplitByLine(readAsStringAsync); var splitByLine = SplitByLine(readAsStringAsync);
//Console.WriteLine(readAsStringAsync);
foreach (var s in splitByLine) foreach (var s in splitByLine)
{ {
if (s.Contains("Rows")) if (s.Contains("Rows"))
@ -236,7 +236,10 @@ public static partial class QuestDbGlobalExtensions
{ {
File.Delete(filePath); File.Delete(filePath);
} }
catch { } catch
{
// ignored
}
} }
return result; return result;
@ -246,11 +249,12 @@ public static partial class QuestDbGlobalExtensions
/// 批量快速插入 /// 批量快速插入
/// </summary> /// </summary>
/// <typeparam name="T"></typeparam> /// <typeparam name="T"></typeparam>
/// <param name="that"></param> /// <param name="insert"></param>
/// <param name="dateFormat">导入时,时间格式 默认:yyyy/M/d H:mm:ss</param>
/// <returns></returns> /// <returns></returns>
public static int ExecuteBulkCopy<T>(this IInsert<T> insert) where T : class public static int ExecuteBulkCopy<T>(this IInsert<T> insert,string dateFormat = "yyyy/M/d H:mm:ss") where T : class
{ {
return ExecuteBulkCopyAsync(insert).ConfigureAwait(false).GetAwaiter().GetResult(); return ExecuteBulkCopyAsync(insert,dateFormat).ConfigureAwait(false).GetAwaiter().GetResult();
} }
} }
@ -340,7 +344,7 @@ static class RestAPIExtension
var base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}")); var base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{username}:{password}"));
authorization = $"Basic {base64}"; authorization = $"Basic {base64}";
} }
//RESTAPI需要无参数 //RestApi需要无参数
buider.UseNoneCommandParameter(true); buider.UseNoneCommandParameter(true);
return buider; return buider;
} }