- 完善 BulkCopy Update

This commit is contained in:
2881099
2022-12-06 21:57:30 +08:00
parent 768b715e18
commit 09864eaa9f
12 changed files with 269 additions and 136 deletions

View File

@@ -4,6 +4,126 @@
<name>FreeSql.Tests</name>
</assembly>
<members>
<member name="T:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01">
<summary>
实时数据
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.Guid">
<summary>
Guid
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.TenantId">
<summary>
租户Id
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.Version">
<summary>
版本
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.IsDeleted">
<summary>
是否删除
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.CreatedUserId">
<summary>
创建者Id
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.CreatedUserNameUpdate01">
<summary>
创建者
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.CreatedTime">
<summary>
创建时间
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.ModifiedUserId">
<summary>
修改者Id
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.ModifiedUserName">
<summary>
修改者
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.ModifiedTime">
<summary>
修改时间
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.DataFlag">
<summary>
数据标识
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.Id">
<summary>
主键Id
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.EquipmentCode">
<summary>
设备编号
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.PropertyCode">
<summary>
数据编号,如为空使用默认数据
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.PropertyName">
<summary>
数据名称,如为空使用默认数据
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.IsValueOrStateChanged">
<summary>
数值或状态是否变更
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.NumericValue">
<summary>
采集数值
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.Remark">
<summary>
备注
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.ServiceFlag">
<summary>
服务标记
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.StrState">
<summary>
状态
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.StrValue">
<summary>
文本数值
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.UnitStr">
<summary>
单位
</summary>
</member>
<member name="P:FreeSql.Tests.ClickHouse.CollectDataEntityUpdate01.CollectTime">
<summary>
采集时间
</summary>
</member>
<member name="P:FreeSql.Tests.Firebird.FirebirdCodeFirstTest.AddUniquesInfo.id">
<summary>
编号

View File

@@ -1,4 +1,4 @@
using FreeSql.DataAnnotations;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -137,6 +137,23 @@ namespace FreeSql.Tests.PostgreSQL
insert.AppendData(items.First()).ExecuteInserted();
}
[Fact]
public void ExecutePgCopy()
{
var maxId = g.pgsql.Select<Topic>().Max(a => a.Id);
var items = new List<Topic>();
for (var a = 0; a < 10; a++) items.Add(new Topic { Id = maxId + a + 1, Title = $"newtitle{a}", Clicks = a * 100, CreateTime = DateTime.Now });
insert.AppendData(items).InsertIdentity().ExecutePgCopy();
items = g.pgsql.Select<Topic>().OrderByDescending(a => a.Id).Limit(1000).ToList();
var sql = g.pgsql.Insert(items).InsertIdentity().NoneParameter().ToSql();
g.pgsql.Update<Topic>().SetSource(items).ExecutePgCopy();
g.pgsql.Update<Topic>().SetSource(items, a => new { a.Id, a.Clicks }).ExecutePgCopy();
g.pgsql.Update<Topic>().SetSource(items).UpdateColumns(a => new { a.Title }).ExecutePgCopy();
g.pgsql.Update<Topic>().SetSource(items, a => new { a.Id, a.Clicks }).UpdateColumns(a => new { a.Title }).ExecutePgCopy();
}
[Fact]
public void AsTable()
{

View File

@@ -227,12 +227,19 @@ namespace FreeSql.Tests.SqlServer
[Fact]
public void ExecuteSqlBulkCopy()
{
var maxId = g.pgsql.Select<Topic>().Max(a => a.Id);
var items = new List<Topic>();
for (var a = 0; a < 10; a++) items.Add(new Topic { Id = a + 1, Title = $"newtitle{a}", Clicks = a * 100, CreateTime = DateTime.Now });
for (var a = 0; a < 10; a++) items.Add(new Topic { Id = maxId + a + 1, Title = $"newtitle{a}", Clicks = a * 100, CreateTime = DateTime.Now });
insert.AppendData(items).InsertIdentity().ExecuteSqlBulkCopy();
//insert.AppendData(items).IgnoreColumns(a => new { a.CreateTime, a.Clicks }).ExecuteSqlBulkCopy();
// System.NotSupportedException:“DataSet does not support System.Nullable<>.”
items = g.sqlserver.Select<Topic>().OrderByDescending(a => a.Id).Limit(1000).ToList();
g.sqlserver.Update<Topic>().SetSource(items).ExecuteSqlBulkCopy();
g.sqlserver.Update<Topic>().SetSource(items, a => new { a.Id, a.TypeGuid }).ExecuteSqlBulkCopy();
g.sqlserver.Update<Topic>().SetSource(items).UpdateColumns(a => new { a.Title }).ExecuteSqlBulkCopy();
g.sqlserver.Update<Topic>().SetSource(items, a => new { a.Id, a.TypeGuid }).UpdateColumns(a => new { a.Title }).ExecuteSqlBulkCopy();
}
[Fact]