From 26abd9ea9a37d721ff7d3c536a5e08e1ce626137 Mon Sep 17 00:00:00 2001
From: dailyccc <963922242@qq.com>
Date: Sat, 3 Dec 2022 11:16:12 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0ClickHouse=20CodeFirst?=
=?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ClickHouse/ClickHouseTest2.cs | 27 ++
.../ClickHouse/CollectDataEntity2.cs | 237 ++++++++++++++++++
2 files changed, 264 insertions(+)
create mode 100644 FreeSql.Tests/FreeSql.Tests/ClickHouse/ClickHouseTest2.cs
create mode 100644 FreeSql.Tests/FreeSql.Tests/ClickHouse/CollectDataEntity2.cs
diff --git a/FreeSql.Tests/FreeSql.Tests/ClickHouse/ClickHouseTest2.cs b/FreeSql.Tests/FreeSql.Tests/ClickHouse/ClickHouseTest2.cs
new file mode 100644
index 00000000..5b21741d
--- /dev/null
+++ b/FreeSql.Tests/FreeSql.Tests/ClickHouse/ClickHouseTest2.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Text;
+using System.Linq;
+using System.Collections;
+using System.Diagnostics;
+using System.ComponentModel.DataAnnotations;
+using FreeSql.DataAnnotations;
+using Xunit;
+
+namespace FreeSql.Tests.ClickHouse
+{
+ public class ClickHouseTest2
+ {
+ private static IFreeSql fsql = new FreeSqlBuilder().UseConnectionString(DataType.ClickHouse,
+ "Host=127.0.0.1;Port=8123;Database=test;Compress=True;Min Pool Size=1")
+ .UseMonitorCommand(cmd => Console.WriteLine($"线程:{cmd.CommandText}\r\n"))
+ .UseNoneCommandParameter(true)
+ .Build();
+ [Fact]
+ public void CodeFirst()
+ {
+ fsql.CodeFirst.SyncStructure(typeof(CollectDataEntityUpdate01));
+ }
+ }
+}
\ No newline at end of file
diff --git a/FreeSql.Tests/FreeSql.Tests/ClickHouse/CollectDataEntity2.cs b/FreeSql.Tests/FreeSql.Tests/ClickHouse/CollectDataEntity2.cs
new file mode 100644
index 00000000..112e3620
--- /dev/null
+++ b/FreeSql.Tests/FreeSql.Tests/ClickHouse/CollectDataEntity2.cs
@@ -0,0 +1,237 @@
+using FreeSql.DataAnnotations;
+using Newtonsoft.Json;
+using System;
+using System.ComponentModel;
+
+namespace FreeSql.Tests.ClickHouse
+{
+ ///
+ /// 实时数据
+ ///
+ [Index("idx_{tablename}_01", nameof(Guid), true)]
+ [Index("idx_{tablename}_02", nameof(TenantId), true)]
+ //复合索引
+ [Index("idx_{tablename}_03", $"{nameof(CreatedUserId)},{nameof(Version)}", false)]
+ [Table(OldName = "CollectDataEntityUpdate")]
+ public partial class CollectDataEntityUpdate01
+ {
+ ///
+ /// Guid
+ ///
+ [Column(StringLength = 50)]
+ public string Guid
+ {
+ get; set;
+ }
+
+ ///
+ /// 租户Id
+ ///
+ [Description("租户Id")]
+ [Column(CanUpdate = false)]
+ public virtual long? TenantId
+ {
+ get; set;
+ }
+
+ ///
+ /// 版本
+ ///
+ [Description("版本")]
+ [Column(IsVersion = false)]
+ public long Version
+ {
+ get; set;
+ }
+
+ ///
+ /// 是否删除
+ ///
+ [Description("是否删除")]
+ [Column()]
+ public bool IsDeleted { get; set; } = false;
+
+ ///
+ /// 创建者Id
+ ///
+ [Description("创建者Id")]
+ [Column(CanUpdate = false)]
+ public long? CreatedUserId
+ {
+ get; set;
+ }
+
+ ///
+ /// 创建者
+ ///
+ [Description("创建者")]
+ [Column(CanUpdate = false, StringLength = 50, OldName = "CreatedUserNameUpdate")]
+ public string CreatedUserNameUpdate01
+ {
+ get; set;
+ }
+
+ ///
+ /// 创建时间
+ ///
+ [Description("创建时间")]
+ [Column(CanUpdate = false, ServerTime = DateTimeKind.Local)]
+ public DateTime? CreatedTime
+ {
+ get; set;
+ }
+
+ ///
+ /// 修改者Id
+ ///
+ [Description("修改者Id")]
+ [Column(CanInsert = false)]
+ public long? ModifiedUserId
+ {
+ get; set;
+ }
+
+ ///
+ /// 修改者
+ ///
+ [Description("修改者")]
+ [Column(CanInsert = false, StringLength = 50)]
+ public string ModifiedUserName
+ {
+ get; set;
+ }
+
+ ///
+ /// 修改时间
+ ///
+ [Description("修改时间")]
+ [Column(CanInsert = false, ServerTime = DateTimeKind.Local)]
+ public DateTime? ModifiedTime
+ {
+ get; set;
+ }
+ ///
+ /// 数据标识
+ ///
+ [Description("数据标识")]
+ [Column(CanInsert = false, StringLength = 2)]
+ public string DataFlag
+ {
+ get; set;
+ }
+ ///
+ /// 主键Id
+ ///
+ [Description("主键Id")]
+ [Column(Position = 1, IsPrimary = true)]
+ public long Id
+ {
+ get; set;
+ }
+ ///
+ /// 设备编号
+ ///
+ [Column(StringLength = 50)]
+ public string EquipmentCode
+ {
+ get; set;
+ }
+
+ ///
+ /// 数据编号,如为空使用默认数据
+ ///
+ [Column(StringLength = 50)]
+ public string PropertyCode
+ {
+ get; set;
+ }
+ ///
+ /// 数据名称,如为空使用默认数据
+ ///
+ [Column(StringLength = 50)]
+ public string PropertyName
+ {
+ get; set;
+ }
+
+ ///
+ /// 数值或状态是否变更
+ ///
+ public bool IsValueOrStateChanged
+ {
+ get; set;
+ }
+
+ ///
+ /// 采集数值
+ ///
+ [Column(StringLength = 18)]
+ public decimal? NumericValue
+ {
+ get; set;
+ }
+
+ ///
+ /// 备注
+ ///
+ [Column(StringLength = 200)]
+ public string Remark
+ {
+ get; set;
+ }
+
+ ///
+ /// 服务标记
+ ///
+ [Column(StringLength = 20)]
+ public string ServiceFlag
+ {
+ get; set;
+ }
+
+ ///
+ /// 状态
+ ///
+ [Column(StringLength = 50)]
+ public string StrState
+ {
+ get; set;
+ }
+
+ ///
+ /// 文本数值
+ ///
+ [Column(StringLength = 50)]
+ public string StrValue
+ {
+ get; set;
+ }
+
+ ///
+ /// 单位
+ ///
+ [Column(StringLength = 10)]
+ public string UnitStr
+ {
+ get; set;
+ }
+
+ ///
+ /// 采集时间
+ ///
+ public DateTime CollectTime
+ {
+ get; set;
+ }
+
+
+ public string FieldKey
+ {
+ get
+ {
+ return EquipmentCode + "_" + PropertyCode;
+ }
+ }
+ }
+
+}
\ No newline at end of file