NewLife/NewLife.Remoting

更新代码生成器
大石头 authored at 2024-06-30 09:41:31
4c5f91b
Tree
1 Parent(s) 3c7f43b
Summary: 6 changed files with 346 additions and 336 deletions.
Modified +3 -5
Added +12 -0
Modified +181 -181
Modified +0 -0
Modified +150 -150
Modified +0 -0
Modified +3 -5
diff --git a/.gitignore b/.gitignore
index eaeda31..cd15659 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,10 +16,8 @@ bld/
 /packages
 *.user
 /Data
-/Log
+[Ll]og/
+[Cc]onfig/
 *.log
 *.nuspec
-*.nupkg
-/BinTest
-/BinUnitTest
-/NewLife.Remoting.Extensions/Properties
+*.nupkg
\ No newline at end of file
Added +12 -0
diff --git a/NewLife.Remoting.Extensions/Properties/launchSettings.json b/NewLife.Remoting.Extensions/Properties/launchSettings.json
new file mode 100644
index 0000000..78cb55c
--- /dev/null
+++ b/NewLife.Remoting.Extensions/Properties/launchSettings.json
@@ -0,0 +1,12 @@
+{
+  "profiles": {
+    "NewLife.Remoting.Extensions": {
+      "commandName": "Project",
+      "launchBrowser": true,
+      "environmentVariables": {
+        "ASPNETCORE_ENVIRONMENT": "Development"
+      },
+      "applicationUrl": "https://localhost:55961;http://localhost:55962"
+    }
+  }
+}
\ No newline at end of file
Modified +181 -181
diff --git a/Samples/IoTZero/Entity/Model.xml b/Samples/IoTZero/Entity/Model.xml
index 5f49e3b..192b80f 100644
--- a/Samples/IoTZero/Entity/Model.xml
+++ b/Samples/IoTZero/Entity/Model.xml
@@ -1,206 +1,206 @@
 <?xml version="1.0" encoding="utf-8"?>
-<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model2023.xsd" xmlns="https://newlifex.com/Model2023.xsd">
+<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model202309.xsd" Document="https://newlifex.com/xcode/model" xmlns="https://newlifex.com/Model202309.xsd">
   <Option>
-    <!--输出目录-->
-    <Output>.\</Output>
-    <!--是否使用中文文件名。默认false-->
-    <ChineseFileName>False</ChineseFileName>
-    <!--基类。可能包含基类和接口,其中{name}替换为Table.Name-->
-    <BaseClass>Entity</BaseClass>
-    <!--命名空间-->
-    <Namespace>IoT.Data</Namespace>
     <!--类名模板。其中{name}替换为Table.Name,如{name}Model/I{name}Dto等-->
     <ClassNameTemplate />
     <!--显示名模板。其中{displayName}替换为Table.DisplayName-->
     <DisplayNameTemplate />
-    <!--用于生成拷贝函数的模型类。例如{name}或I{name}-->
+    <!--基类。可能包含基类和接口,其中{name}替换为Table.Name-->
+    <BaseClass>Entity</BaseClass>
+    <!--命名空间-->
+    <Namespace>IoT.Data</Namespace>
+    <!--输出目录-->
+    <Output>.\</Output>
+    <!--是否使用中文文件名。默认false-->
+    <ChineseFileName>False</ChineseFileName>
+    <!--用于生成Copy函数的参数类型。例如{name}或I{name}-->
     <ModelNameForCopy />
     <!--带有索引器。实现IModel接口-->
     <HasIModel>False</HasIModel>
-    <!--模型类模版-->
-    <ModelClass />
-    <!--模型接口模版-->
-    <ModelInterface />
+    <!--可为null上下文。生成String?等-->
+    <Nullable>False</Nullable>
     <!--数据库连接名-->
     <ConnName>IoT</ConnName>
+    <!--模型类模版。设置后生成模型类,用于接口数据传输,例如{name}Model-->
+    <ModelClass />
     <!--模型类输出目录。默认当前目录的Models子目录-->
     <ModelsOutput>.\Models\</ModelsOutput>
+    <!--模型接口模版。设置后生成模型接口,用于约束模型类和实体类,例如I{name}-->
+    <ModelInterface />
     <!--模型接口输出目录。默认当前目录的Interfaces子目录-->
     <InterfacesOutput>.\Interfaces\</InterfacesOutput>
     <!--用户实体转为模型类的模型类。例如{name}或{name}DTO-->
     <ModelNameForToModel />
     <!--命名格式。Default/Upper/Lower/Underline-->
     <NameFormat>Default</NameFormat>
-    <!--生成器版本-->
-    <Version>11.8.2023.0524</Version>
-    <!--帮助文档-->
-    <Document>https://newlifex.com/xcode/model</Document>
     <!--魔方区域显示名-->
     <DisplayName>设备管理</DisplayName>
     <!--魔方控制器输出目录-->
     <CubeOutput>../../IoTZero/Areas/IoT/</CubeOutput>
   </Option>
-  <Table Name="Product" Description="产品。设备的集合,通常指一组具有相同功能的设备。物联网平台为每个产品颁发全局唯一的ProductKey。">
-    <Columns>
-      <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="Code" DataType="String" Description="编码。ProductKey" />
-      <Column Name="Enable" DataType="Boolean" Description="启用。开发中/已发布" />
-      <Column Name="DeviceCount" DataType="Int32" Description="设备数量" />
-      <Column Name="CreateUser" DataType="String" Description="创建人" Model="False" Category="扩展" />
-      <Column Name="CreateUserId" DataType="Int32" Description="创建者" Model="False" Category="扩展" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
-      <Column Name="UpdateUser" DataType="String" Description="更新人" Model="False" Category="扩展" />
-      <Column Name="UpdateUserId" DataType="Int32" Description="更新者" Model="False" Category="扩展" />
-      <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" Category="扩展" />
-      <Column Name="UpdateIP" DataType="String" Description="更新地址" Model="False" Category="扩展" />
-      <Column Name="Remark" DataType="String" Length="500" Description="描述" Category="扩展" />
-    </Columns>
-    <Indexes>
-      <Index Columns="Code" Unique="True" />
-    </Indexes>
-  </Table>
-  <Table Name="Device" Description="设备。归属于某个产品下的具体设备。物联网平台为设备颁发产品内唯一的证书DeviceName。设备可以直接连接物联网平台,也可以作为子设备通过网关连接物联网平台。">
-    <Columns>
-      <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="Code" DataType="String" Description="编码。设备唯一证书DeviceName,用于设备认证,在注册时由系统生成" />
-      <Column Name="Secret" DataType="String" Description="密钥。设备密钥DeviceSecret,用于设备认证,注册时由系统生成" />
-      <Column Name="ProductId" DataType="Int32" Description="产品" />
-      <Column Name="GroupId" DataType="Int32" Map="DeviceGroup@Id@Name@GroupPath" Description="分组" />
-      <Column Name="Enable" DataType="Boolean" Description="启用" />
-      <Column Name="Online" DataType="Boolean" Description="在线" />
-      <Column Name="Version" DataType="String" Description="版本" />
-      <Column Name="IP" DataType="String" Length="200" Description="本地IP" />
-      <Column Name="Uuid" DataType="String" Length="200" Description="唯一标识。硬件标识,或其它能够唯一区分设备的标记" />
-      <Column Name="Location" DataType="String" Description="位置。场地安装位置,或者经纬度" Category="登录信息" />
-      <Column Name="Period" DataType="Int32" Description="心跳周期。默认60秒" Category="参数设置" />
-      <Column Name="PollingTime" DataType="Int32" Description="采集间隔。默认1000ms" Category="参数设置" />
-      <Column Name="Logins" DataType="Int32" Description="登录次数" Category="登录信息" />
-      <Column Name="LastLogin" DataType="DateTime" Description="最后登录" Category="登录信息" />
-      <Column Name="LastLoginIP" DataType="String" Description="最后IP。最后的公网IP地址" Category="登录信息" />
-      <Column Name="OnlineTime" DataType="Int32" Description="在线时长。总时长,每次下线后累加,单位,秒" Category="登录信息" />
-      <Column Name="RegisterTime" DataType="DateTime" Description="激活时间" Category="登录信息" />
-      <Column Name="CreateUserId" DataType="Int32" Description="创建者" Model="False" Category="扩展" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
-      <Column Name="UpdateUserId" DataType="Int32" Description="更新者" Model="False" Category="扩展" />
-      <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" Category="扩展" />
-      <Column Name="UpdateIP" DataType="String" Description="更新地址" Model="False" Category="扩展" />
-      <Column Name="Remark" DataType="String" Length="500" Description="描述" Category="扩展" />
-    </Columns>
-    <Indexes>
-      <Index Columns="Code" Unique="True" />
-      <Index Columns="ProductId" />
-      <Index Columns="Uuid" />
-      <Index Columns="UpdateTime" />
-    </Indexes>
-  </Table>
-  <Table Name="DeviceGroup" Description="设备分组。物联网平台支持建立设备分组,分组中可包含不同产品下的设备。通过设备组来进行跨产品管理设备。" BaseType="EntityTree">
-    <Columns>
-      <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="ParentId" DataType="Int32" Description="父级" />
-      <Column Name="Sort" DataType="Int32" Description="排序" />
-      <Column Name="Devices" DataType="Int32" Description="设备总数" />
-      <Column Name="Activations" DataType="Int32" Description="激活设备" />
-      <Column Name="Onlines" DataType="Int32" Description="当前在线" />
-      <Column Name="CreateUserId" DataType="Int32" Description="创建者" Model="False" Category="扩展" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
-      <Column Name="UpdateUserId" DataType="Int32" Description="更新者" Model="False" Category="扩展" />
-      <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" Category="扩展" />
-      <Column Name="UpdateIP" DataType="String" Description="更新地址" Model="False" Category="扩展" />
-      <Column Name="Remark" DataType="String" Length="500" Description="描述" Category="扩展" />
-    </Columns>
-    <Indexes>
-      <Index Columns="ParentId,Name" Unique="True" />
-      <Index Columns="Name" />
-    </Indexes>
-  </Table>
-  <Table Name="DeviceOnline" Description="设备在线">
-    <Columns>
-      <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
-      <Column Name="SessionId" DataType="String" Description="会话" />
-      <Column Name="ProductId" DataType="Int32" Description="产品" />
-      <Column Name="DeviceId" DataType="Int32" Description="设备" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="IP" DataType="String" Length="200" Description="本地IP" />
-      <Column Name="GroupPath" DataType="String" Description="分组" />
-      <Column Name="Pings" DataType="Int32" Description="心跳" />
-      <Column Name="Delay" DataType="Int32" Description="延迟。网络延迟,单位ms" />
-      <Column Name="Offset" DataType="Int32" Description="偏移。客户端时间减服务端时间,单位s" />
-      <Column Name="LocalTime" DataType="DateTime" Description="本地时间" />
-      <Column Name="Token" DataType="String" Length="200" Description="令牌" />
-      <Column Name="Creator" DataType="String" Description="创建者。服务端设备" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" />
-      <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" />
-      <Column Name="Remark" DataType="String" Length="500" Description="备注" />
-    </Columns>
-    <Indexes>
-      <Index Columns="SessionId" Unique="True" />
-      <Index Columns="ProductId" />
-      <Index Columns="UpdateTime" />
-    </Indexes>
-  </Table>
-  <Table Name="DeviceHistory" Description="设备历史。记录设备上线下线等操作">
-    <Columns>
-      <Column Name="Id" DataType="Int64" PrimaryKey="True" Description="编号" />
-      <Column Name="DeviceId" DataType="Int32" Description="设备" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="Action" DataType="String" Description="操作" />
-      <Column Name="Success" DataType="Boolean" Description="成功" />
-      <Column Name="TraceId" DataType="String" Description="追踪。用于记录调用链追踪标识,在APM查找调用链" />
-      <Column Name="Creator" DataType="String" Description="创建者。服务端设备" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" />
-      <Column Name="Remark" DataType="String" Length="2000" Description="内容" />
-    </Columns>
-    <Indexes>
-      <Index Columns="DeviceId,Id" />
-      <Index Columns="DeviceId,Action,Id" />
-    </Indexes>
-  </Table>
-  <Table Name="DeviceProperty" Description="设备属性。设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。一个设备有多个属性,名值表">
-    <Columns>
-      <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
-      <Column Name="DeviceId" DataType="Int32" Description="设备" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="NickName" DataType="String" Description="昵称" />
-      <Column Name="Type" DataType="String" Description="类型" />
-      <Column Name="Value" DataType="String" Length="-1" Description="数值。设备上报数值" />
-      <Column Name="Unit" DataType="String" Description="单位" />
-      <Column Name="Enable" DataType="Boolean" Description="启用" />
-      <Column Name="TraceId" DataType="String" Description="追踪。用于记录调用链追踪标识,在APM查找调用链" Model="False" Category="扩展" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
-      <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" Category="扩展" />
-      <Column Name="UpdateIP" DataType="String" Description="更新地址" Model="False" Category="扩展" />
-    </Columns>
-    <Indexes>
-      <Index Columns="DeviceId,Name" Unique="True" />
-      <Index Columns="UpdateTime" />
-    </Indexes>
-  </Table>
-  <Table Name="DeviceData" Description="设备数据。设备采集原始数据,按天分表存储">
-    <Columns>
-      <Column Name="Id" DataType="Int64" PrimaryKey="True" Description="编号" />
-      <Column Name="DeviceId" DataType="Int32" Description="设备" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称。MQTT的Topic,或者属性名" />
-      <Column Name="Kind" DataType="String" Description="类型。数据来源,如PostProperty/PostData/MqttPostData" />
-      <Column Name="Value" DataType="String" Length="2000" Description="数值" />
-      <Column Name="Timestamp" DataType="Int64" Description="时间戳。设备生成数据时的UTC毫秒" />
-      <Column Name="TraceId" DataType="String" Description="追踪标识。用于记录调用链追踪标识,在APM查找调用链" Model="False" Category="扩展" />
-      <Column Name="Creator" DataType="String" Description="创建者。服务端设备" Model="False" Category="扩展" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
-    </Columns>
-    <Indexes>
-      <Index Columns="DeviceId,Id" />
-      <Index Columns="DeviceId,Name,Id" />
-      <Index Columns="DeviceId,Kind,Id" />
-    </Indexes>
-  </Table>
+  <Tables>
+    <Table Name="Product" Description="产品。设备的集合,通常指一组具有相同功能的设备。物联网平台为每个产品颁发全局唯一的ProductKey。">
+      <Columns>
+        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="Code" DataType="String" Description="编码。ProductKey" />
+        <Column Name="Enable" DataType="Boolean" Description="启用。开发中/已发布" />
+        <Column Name="DeviceCount" DataType="Int32" Description="设备数量" />
+        <Column Name="CreateUser" DataType="String" Description="创建人" Model="False" Category="扩展" />
+        <Column Name="CreateUserId" DataType="Int32" Description="创建者" Model="False" Category="扩展" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
+        <Column Name="UpdateUser" DataType="String" Description="更新人" Model="False" Category="扩展" />
+        <Column Name="UpdateUserId" DataType="Int32" Description="更新者" Model="False" Category="扩展" />
+        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" Category="扩展" />
+        <Column Name="UpdateIP" DataType="String" Description="更新地址" Model="False" Category="扩展" />
+        <Column Name="Remark" DataType="String" Length="500" Description="描述" Category="扩展" />
+      </Columns>
+      <Indexes>
+        <Index Columns="Code" Unique="True" />
+      </Indexes>
+    </Table>
+    <Table Name="Device" Description="设备。归属于某个产品下的具体设备。物联网平台为设备颁发产品内唯一的证书DeviceName。设备可以直接连接物联网平台,也可以作为子设备通过网关连接物联网平台。">
+      <Columns>
+        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="Code" DataType="String" Description="编码。设备唯一证书DeviceName,用于设备认证,在注册时由系统生成" />
+        <Column Name="Secret" DataType="String" Description="密钥。设备密钥DeviceSecret,用于设备认证,注册时由系统生成" />
+        <Column Name="ProductId" DataType="Int32" Description="产品" />
+        <Column Name="GroupId" DataType="Int32" Map="DeviceGroup@Id@Name@GroupPath" Description="分组" />
+        <Column Name="Enable" DataType="Boolean" Description="启用" />
+        <Column Name="Online" DataType="Boolean" Description="在线" />
+        <Column Name="Version" DataType="String" Description="版本" />
+        <Column Name="IP" DataType="String" Length="200" Description="本地IP" />
+        <Column Name="Uuid" DataType="String" Length="200" Description="唯一标识。硬件标识,或其它能够唯一区分设备的标记" />
+        <Column Name="Location" DataType="String" Description="位置。场地安装位置,或者经纬度" Category="登录信息" />
+        <Column Name="Period" DataType="Int32" Description="心跳周期。默认60秒" Category="参数设置" />
+        <Column Name="PollingTime" DataType="Int32" Description="采集间隔。默认1000ms" Category="参数设置" />
+        <Column Name="Logins" DataType="Int32" Description="登录次数" Category="登录信息" />
+        <Column Name="LastLogin" DataType="DateTime" Description="最后登录" Category="登录信息" />
+        <Column Name="LastLoginIP" DataType="String" Description="最后IP。最后的公网IP地址" Category="登录信息" />
+        <Column Name="OnlineTime" DataType="Int32" Description="在线时长。总时长,每次下线后累加,单位,秒" Category="登录信息" />
+        <Column Name="RegisterTime" DataType="DateTime" Description="激活时间" Category="登录信息" />
+        <Column Name="CreateUserId" DataType="Int32" Description="创建者" Model="False" Category="扩展" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
+        <Column Name="UpdateUserId" DataType="Int32" Description="更新者" Model="False" Category="扩展" />
+        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" Category="扩展" />
+        <Column Name="UpdateIP" DataType="String" Description="更新地址" Model="False" Category="扩展" />
+        <Column Name="Remark" DataType="String" Length="500" Description="描述" Category="扩展" />
+      </Columns>
+      <Indexes>
+        <Index Columns="Code" Unique="True" />
+        <Index Columns="ProductId" />
+        <Index Columns="Uuid" />
+        <Index Columns="UpdateTime" />
+      </Indexes>
+    </Table>
+    <Table Name="DeviceGroup" Description="设备分组。物联网平台支持建立设备分组,分组中可包含不同产品下的设备。通过设备组来进行跨产品管理设备。" BaseType="EntityTree">
+      <Columns>
+        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="ParentId" DataType="Int32" Description="父级" />
+        <Column Name="Sort" DataType="Int32" Description="排序" />
+        <Column Name="Devices" DataType="Int32" Description="设备总数" />
+        <Column Name="Activations" DataType="Int32" Description="激活设备" />
+        <Column Name="Onlines" DataType="Int32" Description="当前在线" />
+        <Column Name="CreateUserId" DataType="Int32" Description="创建者" Model="False" Category="扩展" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
+        <Column Name="UpdateUserId" DataType="Int32" Description="更新者" Model="False" Category="扩展" />
+        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" Category="扩展" />
+        <Column Name="UpdateIP" DataType="String" Description="更新地址" Model="False" Category="扩展" />
+        <Column Name="Remark" DataType="String" Length="500" Description="描述" Category="扩展" />
+      </Columns>
+      <Indexes>
+        <Index Columns="ParentId,Name" Unique="True" />
+        <Index Columns="Name" />
+      </Indexes>
+    </Table>
+    <Table Name="DeviceOnline" Description="设备在线">
+      <Columns>
+        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
+        <Column Name="SessionId" DataType="String" Description="会话" />
+        <Column Name="ProductId" DataType="Int32" Description="产品" />
+        <Column Name="DeviceId" DataType="Int32" Description="设备" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="IP" DataType="String" Length="200" Description="本地IP" />
+        <Column Name="GroupPath" DataType="String" Description="分组" />
+        <Column Name="Pings" DataType="Int32" Description="心跳" />
+        <Column Name="Delay" DataType="Int32" Description="延迟。网络延迟,单位ms" />
+        <Column Name="Offset" DataType="Int32" Description="偏移。客户端时间减服务端时间,单位s" />
+        <Column Name="LocalTime" DataType="DateTime" Description="本地时间" />
+        <Column Name="Token" DataType="String" Length="200" Description="令牌" />
+        <Column Name="Creator" DataType="String" Description="创建者。服务端设备" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" />
+        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" />
+        <Column Name="Remark" DataType="String" Length="500" Description="备注" />
+      </Columns>
+      <Indexes>
+        <Index Columns="SessionId" Unique="True" />
+        <Index Columns="ProductId" />
+        <Index Columns="UpdateTime" />
+      </Indexes>
+    </Table>
+    <Table Name="DeviceHistory" Description="设备历史。记录设备上线下线等操作">
+      <Columns>
+        <Column Name="Id" DataType="Int64" PrimaryKey="True" Description="编号" />
+        <Column Name="DeviceId" DataType="Int32" Description="设备" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="Action" DataType="String" Description="操作" />
+        <Column Name="Success" DataType="Boolean" Description="成功" />
+        <Column Name="TraceId" DataType="String" Description="追踪。用于记录调用链追踪标识,在APM查找调用链" />
+        <Column Name="Creator" DataType="String" Description="创建者。服务端设备" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" />
+        <Column Name="Remark" DataType="String" Length="2000" Description="内容" />
+      </Columns>
+      <Indexes>
+        <Index Columns="DeviceId,Id" />
+        <Index Columns="DeviceId,Action,Id" />
+      </Indexes>
+    </Table>
+    <Table Name="DeviceProperty" Description="设备属性。设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等。一个设备有多个属性,名值表">
+      <Columns>
+        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
+        <Column Name="DeviceId" DataType="Int32" Description="设备" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="NickName" DataType="String" Description="昵称" />
+        <Column Name="Type" DataType="String" Description="类型" />
+        <Column Name="Value" DataType="String" Length="-1" Description="数值。设备上报数值" />
+        <Column Name="Unit" DataType="String" Description="单位" />
+        <Column Name="Enable" DataType="Boolean" Description="启用" />
+        <Column Name="TraceId" DataType="String" Description="追踪。用于记录调用链追踪标识,在APM查找调用链" Model="False" Category="扩展" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
+        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Model="False" Category="扩展" />
+        <Column Name="UpdateIP" DataType="String" Description="更新地址" Model="False" Category="扩展" />
+      </Columns>
+      <Indexes>
+        <Index Columns="DeviceId,Name" Unique="True" />
+        <Index Columns="UpdateTime" />
+      </Indexes>
+    </Table>
+    <Table Name="DeviceData" Description="设备数据。设备采集原始数据,按天分表存储">
+      <Columns>
+        <Column Name="Id" DataType="Int64" PrimaryKey="True" Description="编号" />
+        <Column Name="DeviceId" DataType="Int32" Description="设备" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称。MQTT的Topic,或者属性名" />
+        <Column Name="Kind" DataType="String" Description="类型。数据来源,如PostProperty/PostData/MqttPostData" />
+        <Column Name="Value" DataType="String" Length="2000" Description="数值" />
+        <Column Name="Timestamp" DataType="Int64" Description="时间戳。设备生成数据时的UTC毫秒" />
+        <Column Name="TraceId" DataType="String" Description="追踪标识。用于记录调用链追踪标识,在APM查找调用链" Model="False" Category="扩展" />
+        <Column Name="Creator" DataType="String" Description="创建者。服务端设备" Model="False" Category="扩展" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Model="False" Category="扩展" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Model="False" Category="扩展" />
+      </Columns>
+      <Indexes>
+        <Index Columns="DeviceId,Id" />
+        <Index Columns="DeviceId,Name,Id" />
+        <Index Columns="DeviceId,Kind,Id" />
+      </Indexes>
+    </Table>
+  </Tables>
 </EntityModel>
\ No newline at end of file
Modified +0 -0
diff --git a/Samples/IoTZero/Entity/xcodetool.exe b/Samples/IoTZero/Entity/xcodetool.exe
index 51c2c0b..7eb8d6c 100644
Binary files a/Samples/IoTZero/Entity/xcodetool.exe and b/Samples/IoTZero/Entity/xcodetool.exe differ
Modified +150 -150
diff --git a/Samples/ZeroServer/Nodes/Model.xml b/Samples/ZeroServer/Nodes/Model.xml
index f4555e6..de3e111 100644
--- a/Samples/ZeroServer/Nodes/Model.xml
+++ b/Samples/ZeroServer/Nodes/Model.xml
@@ -1,175 +1,175 @@
 <?xml version="1.0" encoding="utf-8"?>
-<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model2023.xsd" xmlns="https://newlifex.com/Model2023.xsd">
+<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model202309.xsd" Document="https://newlifex.com/xcode/model" xmlns="https://newlifex.com/Model202309.xsd">
   <Option>
-    <!--输出目录-->
-    <Output>.\</Output>
-    <!--是否使用中文文件名。默认false-->
-    <ChineseFileName>False</ChineseFileName>
-    <!--基类。可能包含基类和接口,其中{name}替换为Table.Name-->
-    <BaseClass>Entity</BaseClass>
-    <!--命名空间-->
-    <Namespace>Zero.Data.Nodes</Namespace>
     <!--类名模板。其中{name}替换为Table.Name,如{name}Model/I{name}Dto等-->
     <ClassNameTemplate />
     <!--显示名模板。其中{displayName}替换为Table.DisplayName-->
     <DisplayNameTemplate />
-    <!--用于生成拷贝函数的模型类。例如{name}或I{name}-->
+    <!--基类。可能包含基类和接口,其中{name}替换为Table.Name-->
+    <BaseClass>Entity</BaseClass>
+    <!--命名空间-->
+    <Namespace>Zero.Data.Nodes</Namespace>
+    <!--输出目录-->
+    <Output>.\</Output>
+    <!--是否使用中文文件名。默认false-->
+    <ChineseFileName>False</ChineseFileName>
+    <!--用于生成Copy函数的参数类型。例如{name}或I{name}-->
     <ModelNameForCopy />
     <!--带有索引器。实现IModel接口-->
     <HasIModel>False</HasIModel>
-    <!--模型类模版-->
-    <ModelClass />
-    <!--模型接口模版-->
-    <ModelInterface />
+    <!--可为null上下文。生成String?等-->
+    <Nullable>False</Nullable>
     <!--数据库连接名-->
     <ConnName>Zero</ConnName>
+    <!--模型类模版。设置后生成模型类,用于接口数据传输,例如{name}Model-->
+    <ModelClass />
     <!--模型类输出目录。默认当前目录的Models子目录-->
     <ModelsOutput>.\Models\</ModelsOutput>
+    <!--模型接口模版。设置后生成模型接口,用于约束模型类和实体类,例如I{name}-->
+    <ModelInterface />
     <!--模型接口输出目录。默认当前目录的Interfaces子目录-->
     <InterfacesOutput>.\Interfaces\</InterfacesOutput>
     <!--用户实体转为模型类的模型类。例如{name}或{name}DTO-->
     <ModelNameForToModel />
     <!--命名格式。Default/Upper/Lower/Underline-->
     <NameFormat>Default</NameFormat>
-    <!--生成器版本-->
-    <Version>11.8.2023.0523</Version>
-    <!--帮助文档-->
-    <Document>https://newlifex.com/xcode/model</Document>
     <!--魔方区域显示名-->
     <DisplayName>节点管理</DisplayName>
     <!--魔方控制器输出目录-->
     <CubeOutput>../Areas/Nodes</CubeOutput>
   </Option>
-  <Table Name="Node" Description="节点">
-    <Columns>
-      <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="Code" DataType="String" Description="编码。NodeKey" />
-      <Column Name="Secret" DataType="String" Description="密钥。NodeSecret" />
-      <Column Name="Enable" DataType="Boolean" Description="启用" />
-      <Column Name="ProductCode" DataType="String" Description="产品。产品编码,用于区分不同类型节点" />
-      <Column Name="Category" DataType="String" Description="分类" />
-      <Column Name="Version" DataType="String" Description="版本" />
-      <Column Name="CompileTime" DataType="DateTime" Description="编译时间" />
-      <Column Name="OS" DataType="String" Length="100" Description="操作系统" Category="硬件信息" />
-      <Column Name="OSVersion" DataType="String" Description="系统版本" Category="硬件信息" />
-      <Column Name="Architecture" DataType="String" Description="架构。处理器架构,X86/X64/Arm/Arm64" Category="硬件信息" />
-      <Column Name="MachineName" DataType="String" Description="机器名称" Category="硬件信息" />
-      <Column Name="UserName" DataType="String" Description="用户名称" Category="硬件信息" />
-      <Column Name="IP" DataType="String" Length="200" Description="本地IP" Category="硬件信息" />
-      <Column Name="Cpu" DataType="Int32" Description="CPU。处理器核心数" Category="硬件信息" />
-      <Column Name="Memory" DataType="Int32" Description="内存。单位M" Category="硬件信息" />
-      <Column Name="TotalSize" DataType="Int32" Description="磁盘。应用所在盘,单位M" Category="硬件信息" />
-      <Column Name="MaxOpenFiles" DataType="Int32" Description="最大打开文件。Linux上的ulimit -n" Category="硬件信息" />
-      <Column Name="Dpi" DataType="String" Description="像素点。默认96*96" Category="硬件信息" />
-      <Column Name="Resolution" DataType="String" Description="分辨率。例如1024*768" Category="硬件信息" />
-      <Column Name="Processor" DataType="String" Length="200" Description="处理器" Category="硬件信息" />
-      <Column Name="Uuid" DataType="String" Description="唯一标识" Category="硬件信息" />
-      <Column Name="MachineGuid" DataType="String" Description="机器标识" Category="硬件信息" />
-      <Column Name="DiskID" DataType="String" Length="200" Description="磁盘序列号" Category="硬件信息" />
-      <Column Name="MACs" DataType="String" Length="200" Description="网卡" Category="硬件信息" />
-      <Column Name="InstallPath" DataType="String" Length="200" Description="安装路径" Category="硬件信息" />
-      <Column Name="Runtime" DataType="String" Description="运行时。.Net运行时版本,可知道本地已安装版本" Category="硬件信息" />
-      <Column Name="Framework" DataType="String" Description="目标框架。编译程序集时的目标版本" Category="硬件信息" />
-      <Column Name="ProvinceID" DataType="Int32" Description="省份" />
-      <Column Name="CityID" DataType="Int32" Description="城市" />
-      <Column Name="Address" DataType="String" Length="200" Description="地址。该节点所处位置" />
-      <Column Name="Period" DataType="Int32" Description="采样周期。默认60秒" />
-      <Column Name="WebHook" DataType="String" Length="500" Description="告警机器人。钉钉、企业微信等" Category="告警" />
-      <Column Name="AlarmCpuRate" DataType="Int32" Description="CPU告警。CPU告警的百分比阈值,CPU使用率达到该值时告警,百分之一" Category="告警" />
-      <Column Name="AlarmMemoryRate" DataType="Int32" Description="内存告警。内存告警的百分比阈值,内存使用率达到该值时告警,百分之一" Category="告警" />
-      <Column Name="AlarmDiskRate" DataType="Int32" Description="磁盘告警。磁盘告警的百分比阈值,磁盘使用率达到该值时告警,百分之一" Category="告警" />
-      <Column Name="AlarmTcp" DataType="Int32" Description="连接数告警。TCP连接数达到该值时告警,包括连接数、主动关闭和被动关闭" Category="告警" />
-      <Column Name="AlarmProcesses" DataType="String" Description="进程告警。要守护的进程不存在时告警,多进程逗号隔开,支持*模糊匹配" Category="告警" />
-      <Column Name="AlarmOnOffline" DataType="Boolean" Description="下线告警。节点下线时,发送告警" Category="告警" />
-      <Column Name="Logins" DataType="Int32" Description="登录次数" />
-      <Column Name="LastLogin" DataType="DateTime" Description="最后登录" />
-      <Column Name="LastLoginIP" DataType="String" Description="最后IP。最后的公网IP地址" />
-      <Column Name="OnlineTime" DataType="Int32" Description="在线时长。单位,秒" />
-      <Column Name="CreateUserID" DataType="Int32" Description="创建者" Category="扩展" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
-      <Column Name="UpdateUserID" DataType="Int32" Description="更新者" Category="扩展" />
-      <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
-      <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
-      <Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
-    </Columns>
-    <Indexes>
-      <Index Columns="Code" Unique="True" />
-      <Index Columns="Uuid,MachineGuid,MACs" />
-      <Index Columns="IP" />
-      <Index Columns="Category" />
-      <Index Columns="ProductCode" />
-      <Index Columns="UpdateTime" />
-    </Indexes>
-  </Table>
-  <Table Name="NodeOnline" Description="节点在线" ConnName="StardustData">
-    <Columns>
-      <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
-      <Column Name="SessionID" DataType="String" Description="会话" />
-      <Column Name="NodeId" DataType="Int32" Description="节点" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="IP" DataType="String" Length="200" Description="本地IP" />
-      <Column Name="Category" DataType="String" Description="分类" />
-      <Column Name="ProvinceID" DataType="Int32" Description="省份" />
-      <Column Name="CityID" DataType="Int32" Description="城市" />
-      <Column Name="PingCount" DataType="Int32" Description="心跳" />
-      <Column Name="WebSocket" DataType="Boolean" Description="长连接。WebSocket长连接" />
-      <Column Name="Version" DataType="String" Description="版本" />
-      <Column Name="CompileTime" DataType="DateTime" Description="编译时间" />
-      <Column Name="Memory" DataType="Int32" Description="内存。单位M" />
-      <Column Name="AvailableMemory" DataType="Int32" Description="可用内存。单位M" />
-      <Column Name="AvailableFreeSpace" DataType="Int32" Description="可用磁盘。应用所在盘,单位M" />
-      <Column Name="CpuRate" DataType="Double" Description="CPU率。占用率" />
-      <Column Name="Temperature" DataType="Double" Description="温度" />
-      <Column Name="Battery" DataType="Double" Description="电量" />
-      <Column Name="UplinkSpeed" DataType="Int64" Description="上行速度。网络发送速度,字节每秒" />
-      <Column Name="DownlinkSpeed" DataType="Int64" Description="下行速度。网络接收速度,字节每秒" />
-      <Column Name="ProcessCount" DataType="Int32" Description="进程数" />
-      <Column Name="TcpConnections" DataType="Int32" Description="连接数。传输数据Established的Tcp网络连接数" />
-      <Column Name="TcpTimeWait" DataType="Int32" Description="主动关闭。主动关闭后TimeWait的Tcp网络连接数,下一步Closed" />
-      <Column Name="TcpCloseWait" DataType="Int32" Description="被动关闭。被动关闭后CloseWait的Tcp网络连接数,下一步TimeWait" />
-      <Column Name="Delay" DataType="Int32" Description="延迟。网络延迟,客户端最近一次心跳耗时的一半,单位ms" />
-      <Column Name="Offset" DataType="Int32" Description="偏移。客户端UTC时间减服务端UTC时间,单位ms" />
-      <Column Name="LocalTime" DataType="DateTime" Description="本地时间" />
-      <Column Name="Uptime" DataType="Int32" Description="开机时间。单位s" />
-      <Column Name="MACs" DataType="String" Length="200" Description="网卡" />
-      <Column Name="Processes" DataType="String" Length="2000" Description="进程列表" />
-      <Column Name="Token" DataType="String" Length="200" Description="令牌" />
-      <Column Name="Data" DataType="String" Length="-1" Description="数据" />
-      <Column Name="Creator" DataType="String" Description="创建者。服务端节点" Category="扩展" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
-      <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
-      <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
-    </Columns>
-    <Indexes>
-      <Index Columns="SessionID" Unique="True" />
-      <Index Columns="NodeId" />
-      <Index Columns="Token" />
-      <Index Columns="UpdateTime" />
-      <Index Columns="ProvinceID,CityID" />
-    </Indexes>
-  </Table>
-  <Table Name="NodeHistory" Description="节点历史" ConnName="StardustData">
-    <Columns>
-      <Column Name="Id" DataType="Int64" PrimaryKey="True" Description="编号" />
-      <Column Name="NodeId" DataType="Int32" Description="节点" />
-      <Column Name="Name" DataType="String" Master="True" Description="名称" />
-      <Column Name="ProvinceID" DataType="Int32" Description="省份" />
-      <Column Name="CityID" DataType="Int32" Description="城市" />
-      <Column Name="Action" DataType="String" Description="操作" />
-      <Column Name="Success" DataType="Boolean" Description="成功" />
-      <Column Name="Version" DataType="String" Description="版本" />
-      <Column Name="CompileTime" DataType="DateTime" Description="编译时间" />
-      <Column Name="TraceId" DataType="String" Description="追踪。最新一次查看采样,可用于关联多个片段,建立依赖关系,随线程上下文、Http、Rpc传递" Category="扩展" />
-      <Column Name="Creator" DataType="String" Description="创建者。服务端节点" Category="扩展" />
-      <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
-      <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
-      <Column Name="Remark" ColumnName="Content" DataType="String" Length="2000" Description="内容" />
-    </Columns>
-    <Indexes>
-      <Index Columns="NodeId,Action" />
-    </Indexes>
-  </Table>
+  <Tables>
+    <Table Name="Node" Description="节点">
+      <Columns>
+        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="Code" DataType="String" Description="编码。NodeKey" />
+        <Column Name="Secret" DataType="String" Description="密钥。NodeSecret" />
+        <Column Name="Enable" DataType="Boolean" Description="启用" />
+        <Column Name="ProductCode" DataType="String" Description="产品。产品编码,用于区分不同类型节点" />
+        <Column Name="Category" DataType="String" Description="分类" />
+        <Column Name="Version" DataType="String" Description="版本" />
+        <Column Name="CompileTime" DataType="DateTime" Description="编译时间" />
+        <Column Name="OS" DataType="String" Length="100" Description="操作系统" Category="硬件信息" />
+        <Column Name="OSVersion" DataType="String" Description="系统版本" Category="硬件信息" />
+        <Column Name="Architecture" DataType="String" Description="架构。处理器架构,X86/X64/Arm/Arm64" Category="硬件信息" />
+        <Column Name="MachineName" DataType="String" Description="机器名称" Category="硬件信息" />
+        <Column Name="UserName" DataType="String" Description="用户名称" Category="硬件信息" />
+        <Column Name="IP" DataType="String" Length="200" Description="本地IP" Category="硬件信息" />
+        <Column Name="Cpu" DataType="Int32" Description="CPU。处理器核心数" Category="硬件信息" />
+        <Column Name="Memory" DataType="Int32" Description="内存。单位M" Category="硬件信息" />
+        <Column Name="TotalSize" DataType="Int32" Description="磁盘。应用所在盘,单位M" Category="硬件信息" />
+        <Column Name="MaxOpenFiles" DataType="Int32" Description="最大打开文件。Linux上的ulimit -n" Category="硬件信息" />
+        <Column Name="Dpi" DataType="String" Description="像素点。默认96*96" Category="硬件信息" />
+        <Column Name="Resolution" DataType="String" Description="分辨率。例如1024*768" Category="硬件信息" />
+        <Column Name="Processor" DataType="String" Length="200" Description="处理器" Category="硬件信息" />
+        <Column Name="Uuid" DataType="String" Description="唯一标识" Category="硬件信息" />
+        <Column Name="MachineGuid" DataType="String" Description="机器标识" Category="硬件信息" />
+        <Column Name="DiskID" DataType="String" Length="200" Description="磁盘序列号" Category="硬件信息" />
+        <Column Name="MACs" DataType="String" Length="200" Description="网卡" Category="硬件信息" />
+        <Column Name="InstallPath" DataType="String" Length="200" Description="安装路径" Category="硬件信息" />
+        <Column Name="Runtime" DataType="String" Description="运行时。.Net运行时版本,可知道本地已安装版本" Category="硬件信息" />
+        <Column Name="Framework" DataType="String" Description="目标框架。编译程序集时的目标版本" Category="硬件信息" />
+        <Column Name="ProvinceID" DataType="Int32" Description="省份" />
+        <Column Name="CityID" DataType="Int32" Description="城市" />
+        <Column Name="Address" DataType="String" Length="200" Description="地址。该节点所处位置" />
+        <Column Name="Period" DataType="Int32" Description="采样周期。默认60秒" />
+        <Column Name="WebHook" DataType="String" Length="500" Description="告警机器人。钉钉、企业微信等" Category="告警" />
+        <Column Name="AlarmCpuRate" DataType="Int32" Description="CPU告警。CPU告警的百分比阈值,CPU使用率达到该值时告警,百分之一" Category="告警" />
+        <Column Name="AlarmMemoryRate" DataType="Int32" Description="内存告警。内存告警的百分比阈值,内存使用率达到该值时告警,百分之一" Category="告警" />
+        <Column Name="AlarmDiskRate" DataType="Int32" Description="磁盘告警。磁盘告警的百分比阈值,磁盘使用率达到该值时告警,百分之一" Category="告警" />
+        <Column Name="AlarmTcp" DataType="Int32" Description="连接数告警。TCP连接数达到该值时告警,包括连接数、主动关闭和被动关闭" Category="告警" />
+        <Column Name="AlarmProcesses" DataType="String" Description="进程告警。要守护的进程不存在时告警,多进程逗号隔开,支持*模糊匹配" Category="告警" />
+        <Column Name="AlarmOnOffline" DataType="Boolean" Description="下线告警。节点下线时,发送告警" Category="告警" />
+        <Column Name="Logins" DataType="Int32" Description="登录次数" />
+        <Column Name="LastLogin" DataType="DateTime" Description="最后登录" />
+        <Column Name="LastLoginIP" DataType="String" Description="最后IP。最后的公网IP地址" />
+        <Column Name="OnlineTime" DataType="Int32" Description="在线时长。单位,秒" />
+        <Column Name="CreateUserID" DataType="Int32" Description="创建者" Category="扩展" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
+        <Column Name="UpdateUserID" DataType="Int32" Description="更新者" Category="扩展" />
+        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
+        <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
+        <Column Name="Remark" DataType="String" Length="500" Description="备注" Category="扩展" />
+      </Columns>
+      <Indexes>
+        <Index Columns="Code" Unique="True" />
+        <Index Columns="Uuid,MachineGuid,MACs" />
+        <Index Columns="IP" />
+        <Index Columns="Category" />
+        <Index Columns="ProductCode" />
+        <Index Columns="UpdateTime" />
+      </Indexes>
+    </Table>
+    <Table Name="NodeOnline" Description="节点在线" ConnName="StardustData">
+      <Columns>
+        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
+        <Column Name="SessionID" DataType="String" Description="会话" />
+        <Column Name="NodeId" DataType="Int32" Description="节点" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="IP" DataType="String" Length="200" Description="本地IP" />
+        <Column Name="Category" DataType="String" Description="分类" />
+        <Column Name="ProvinceID" DataType="Int32" Description="省份" />
+        <Column Name="CityID" DataType="Int32" Description="城市" />
+        <Column Name="PingCount" DataType="Int32" Description="心跳" />
+        <Column Name="WebSocket" DataType="Boolean" Description="长连接。WebSocket长连接" />
+        <Column Name="Version" DataType="String" Description="版本" />
+        <Column Name="CompileTime" DataType="DateTime" Description="编译时间" />
+        <Column Name="Memory" DataType="Int32" Description="内存。单位M" />
+        <Column Name="AvailableMemory" DataType="Int32" Description="可用内存。单位M" />
+        <Column Name="AvailableFreeSpace" DataType="Int32" Description="可用磁盘。应用所在盘,单位M" />
+        <Column Name="CpuRate" DataType="Double" Description="CPU率。占用率" />
+        <Column Name="Temperature" DataType="Double" Description="温度" />
+        <Column Name="Battery" DataType="Double" Description="电量" />
+        <Column Name="UplinkSpeed" DataType="Int64" Description="上行速度。网络发送速度,字节每秒" />
+        <Column Name="DownlinkSpeed" DataType="Int64" Description="下行速度。网络接收速度,字节每秒" />
+        <Column Name="ProcessCount" DataType="Int32" Description="进程数" />
+        <Column Name="TcpConnections" DataType="Int32" Description="连接数。传输数据Established的Tcp网络连接数" />
+        <Column Name="TcpTimeWait" DataType="Int32" Description="主动关闭。主动关闭后TimeWait的Tcp网络连接数,下一步Closed" />
+        <Column Name="TcpCloseWait" DataType="Int32" Description="被动关闭。被动关闭后CloseWait的Tcp网络连接数,下一步TimeWait" />
+        <Column Name="Delay" DataType="Int32" Description="延迟。网络延迟,客户端最近一次心跳耗时的一半,单位ms" />
+        <Column Name="Offset" DataType="Int32" Description="偏移。客户端UTC时间减服务端UTC时间,单位ms" />
+        <Column Name="LocalTime" DataType="DateTime" Description="本地时间" />
+        <Column Name="Uptime" DataType="Int32" Description="开机时间。单位s" />
+        <Column Name="MACs" DataType="String" Length="200" Description="网卡" />
+        <Column Name="Processes" DataType="String" Length="2000" Description="进程列表" />
+        <Column Name="Token" DataType="String" Length="200" Description="令牌" />
+        <Column Name="Data" DataType="String" Length="-1" Description="数据" />
+        <Column Name="Creator" DataType="String" Description="创建者。服务端节点" Category="扩展" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
+        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
+        <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
+      </Columns>
+      <Indexes>
+        <Index Columns="SessionID" Unique="True" />
+        <Index Columns="NodeId" />
+        <Index Columns="Token" />
+        <Index Columns="UpdateTime" />
+        <Index Columns="ProvinceID,CityID" />
+      </Indexes>
+    </Table>
+    <Table Name="NodeHistory" Description="节点历史" ConnName="StardustData">
+      <Columns>
+        <Column Name="Id" DataType="Int64" PrimaryKey="True" Description="编号" />
+        <Column Name="NodeId" DataType="Int32" Description="节点" />
+        <Column Name="Name" DataType="String" Master="True" Description="名称" />
+        <Column Name="ProvinceID" DataType="Int32" Description="省份" />
+        <Column Name="CityID" DataType="Int32" Description="城市" />
+        <Column Name="Action" DataType="String" Description="操作" />
+        <Column Name="Success" DataType="Boolean" Description="成功" />
+        <Column Name="Version" DataType="String" Description="版本" />
+        <Column Name="CompileTime" DataType="DateTime" Description="编译时间" />
+        <Column Name="TraceId" DataType="String" Description="追踪。最新一次查看采样,可用于关联多个片段,建立依赖关系,随线程上下文、Http、Rpc传递" Category="扩展" />
+        <Column Name="Creator" DataType="String" Description="创建者。服务端节点" Category="扩展" />
+        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
+        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
+        <Column Name="Remark" ColumnName="Content" DataType="String" Length="2000" Description="内容" />
+      </Columns>
+      <Indexes>
+        <Index Columns="NodeId,Action" />
+      </Indexes>
+    </Table>
+  </Tables>
 </EntityModel>
\ No newline at end of file
Modified +0 -0
diff --git a/Samples/ZeroServer/Nodes/xcodetool.exe b/Samples/ZeroServer/Nodes/xcodetool.exe
index 51c2c0b..7eb8d6c 100644
Binary files a/Samples/ZeroServer/Nodes/xcodetool.exe and b/Samples/ZeroServer/Nodes/xcodetool.exe differ