Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
IoTSharp
IoTSharp
提交
10865b34
IoTSharp
项目概览
IoTSharp
/
IoTSharp
10 个月 前同步成功
通知
15
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
IoTSharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
10865b34
编写于
10月 06, 2022
作者:
麦壳饼
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
加入 数据库迁移信息
上级
e52eec64
变更
13
展开全部
隐藏空白更改
内联
并排
Showing
13 changed file
with
10988 addition
and
68 deletion
+10988
-68
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/Migrations/20221006071634_remove_online_status.Designer.cs
...igrations/20221006071634_remove_online_status.Designer.cs
+2605
-0
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/Migrations/20221006071634_remove_online_status.cs
...a.MySQL/Migrations/20221006071634_remove_online_status.cs
+68
-0
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/Migrations/ApplicationDbContextModelSnapshot.cs
...ata.MySQL/Migrations/ApplicationDbContextModelSnapshot.cs
+3
-17
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/readme.md
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/readme.md
+1
-0
IoTSharp.Data.Storage/IoTSharp.Data.PostgreSQL/Migrations/20221006071345_remove_online_status.Designer.cs
...igrations/20221006071345_remove_online_status.Designer.cs
+2624
-0
IoTSharp.Data.Storage/IoTSharp.Data.PostgreSQL/Migrations/20221006071345_remove_online_status.cs
...tgreSQL/Migrations/20221006071345_remove_online_status.cs
+68
-0
IoTSharp.Data.Storage/IoTSharp.Data.PostgreSQL/Migrations/ApplicationDbContextModelSnapshot.cs
...ostgreSQL/Migrations/ApplicationDbContextModelSnapshot.cs
+3
-17
IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/Migrations/20221006071915_remove_online_status.Designer.cs
...igrations/20221006071915_remove_online_status.Designer.cs
+2626
-0
IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/Migrations/20221006071915_remove_online_status.cs
...lServer/Migrations/20221006071915_remove_online_status.cs
+68
-0
IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/Migrations/ApplicationDbContextModelSnapshot.cs
...SqlServer/Migrations/ApplicationDbContextModelSnapshot.cs
+3
-17
IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/Migrations/20221006071746_remove_online_status.Designer.cs
...igrations/20221006071746_remove_online_status.Designer.cs
+2848
-0
IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/Migrations/20221006071746_remove_online_status.cs
....Sqlite/Migrations/20221006071746_remove_online_status.cs
+68
-0
IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/Migrations/ApplicationDbContextModelSnapshot.cs
...ta.Sqlite/Migrations/ApplicationDbContextModelSnapshot.cs
+3
-17
未找到文件。
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/Migrations/20221006071634_remove_online_status.Designer.cs
0 → 100644
浏览文件 @
10865b34
此差异已折叠。
点击以展开。
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/Migrations/20221006071634_remove_online_status.cs
0 → 100644
浏览文件 @
10865b34
using
System
;
using
Microsoft.EntityFrameworkCore.Migrations
;
#
nullable
disable
namespace
IoTSharp.Data.MySql.Migrations
{
public
partial
class
remove_online_status
:
Migration
{
protected
override
void
Up
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
DropForeignKey
(
name
:
"FK_Device_DeviceModels_DeviceModelId"
,
table
:
"Device"
);
migrationBuilder
.
DropIndex
(
name
:
"IX_Device_DeviceModelId"
,
table
:
"Device"
);
migrationBuilder
.
DropColumn
(
name
:
"LastActive"
,
table
:
"Device"
);
migrationBuilder
.
DropColumn
(
name
:
"Status"
,
table
:
"Device"
);
migrationBuilder
.
RenameColumn
(
name
:
"Online"
,
table
:
"Device"
,
newName
:
"Deleted"
);
}
protected
override
void
Down
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
RenameColumn
(
name
:
"Deleted"
,
table
:
"Device"
,
newName
:
"Online"
);
migrationBuilder
.
AddColumn
<
DateTime
>(
name
:
"LastActive"
,
table
:
"Device"
,
type
:
"timestamp"
,
nullable
:
false
,
defaultValue
:
new
DateTime
(
1
,
1
,
1
,
0
,
0
,
0
,
0
,
DateTimeKind
.
Unspecified
));
migrationBuilder
.
AddColumn
<
int
>(
name
:
"Status"
,
table
:
"Device"
,
type
:
"int"
,
nullable
:
false
,
defaultValue
:
0
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_Device_DeviceModelId"
,
table
:
"Device"
,
column
:
"DeviceModelId"
);
migrationBuilder
.
AddForeignKey
(
name
:
"FK_Device_DeviceModels_DeviceModelId"
,
table
:
"Device"
,
column
:
"DeviceModelId"
,
principalTable
:
"DeviceModels"
,
principalColumn
:
"DeviceModelId"
);
}
}
}
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/Migrations/ApplicationDbContextModelSnapshot.cs
浏览文件 @
10865b34
...
...
@@ -579,30 +579,24 @@ namespace IoTSharp.Data.MySql.Migrations
b
.
Property
<
Guid
?>(
"CustomerId"
)
.
HasColumnType
(
"char(36)"
);
b
.
Property
<
bool
>(
"Deleted"
)
.
HasColumnType
(
"tinyint(1)"
);
b
.
Property
<
Guid
?>(
"DeviceModelId"
)
.
HasColumnType
(
"char(36)"
);
b
.
Property
<
int
>(
"DeviceType"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
DateTime
>(
"LastActive"
)
.
HasColumnType
(
"timestamp"
);
b
.
Property
<
string
>(
"Name"
)
.
HasColumnType
(
"longtext"
);
b
.
Property
<
bool
>(
"Online"
)
.
HasColumnType
(
"tinyint(1)"
);
b
.
Property
<
Guid
?>(
"OwnerId"
)
.
HasColumnType
(
"char(36)"
);
b
.
Property
<
Guid
?>(
"ProduceId"
)
.
HasColumnType
(
"char(36)"
);
b
.
Property
<
int
>(
"Status"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
Guid
?>(
"TenantId"
)
.
HasColumnType
(
"char(36)"
);
...
...
@@ -615,8 +609,6 @@ namespace IoTSharp.Data.MySql.Migrations
b
.
HasIndex
(
"CustomerId"
);
b
.
HasIndex
(
"DeviceModelId"
);
b
.
HasIndex
(
"OwnerId"
);
b
.
HasIndex
(
"ProduceId"
);
...
...
@@ -2188,10 +2180,6 @@ namespace IoTSharp.Data.MySql.Migrations
.
WithMany
(
"Devices"
)
.
HasForeignKey
(
"CustomerId"
);
b
.
HasOne
(
"IoTSharp.Data.DeviceModel"
,
"DeviceModel"
)
.
WithMany
()
.
HasForeignKey
(
"DeviceModelId"
);
b
.
HasOne
(
"IoTSharp.Data.Gateway"
,
"Owner"
)
.
WithMany
(
"Children"
)
.
HasForeignKey
(
"OwnerId"
);
...
...
@@ -2206,8 +2194,6 @@ namespace IoTSharp.Data.MySql.Migrations
b
.
Navigation
(
"Customer"
);
b
.
Navigation
(
"DeviceModel"
);
b
.
Navigation
(
"Owner"
);
b
.
Navigation
(
"Tenant"
);
...
...
IoTSharp.Data.Storage/IoTSharp.Data.MySQL/readme.md
0 → 100644
浏览文件 @
10865b34
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=kissme -d mysql
\ No newline at end of file
IoTSharp.Data.Storage/IoTSharp.Data.PostgreSQL/Migrations/20221006071345_remove_online_status.Designer.cs
0 → 100644
浏览文件 @
10865b34
此差异已折叠。
点击以展开。
IoTSharp.Data.Storage/IoTSharp.Data.PostgreSQL/Migrations/20221006071345_remove_online_status.cs
0 → 100644
浏览文件 @
10865b34
using
System
;
using
Microsoft.EntityFrameworkCore.Migrations
;
#
nullable
disable
namespace
IoTSharp.Migrations
{
public
partial
class
remove_online_status
:
Migration
{
protected
override
void
Up
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
DropForeignKey
(
name
:
"FK_Device_DeviceModels_DeviceModelId"
,
table
:
"Device"
);
migrationBuilder
.
DropIndex
(
name
:
"IX_Device_DeviceModelId"
,
table
:
"Device"
);
migrationBuilder
.
DropColumn
(
name
:
"LastActive"
,
table
:
"Device"
);
migrationBuilder
.
DropColumn
(
name
:
"Status"
,
table
:
"Device"
);
migrationBuilder
.
RenameColumn
(
name
:
"Online"
,
table
:
"Device"
,
newName
:
"Deleted"
);
}
protected
override
void
Down
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
RenameColumn
(
name
:
"Deleted"
,
table
:
"Device"
,
newName
:
"Online"
);
migrationBuilder
.
AddColumn
<
DateTime
>(
name
:
"LastActive"
,
table
:
"Device"
,
type
:
"timestamp with time zone"
,
nullable
:
false
,
defaultValue
:
new
DateTime
(
1
,
1
,
1
,
0
,
0
,
0
,
0
,
DateTimeKind
.
Unspecified
));
migrationBuilder
.
AddColumn
<
int
>(
name
:
"Status"
,
table
:
"Device"
,
type
:
"integer"
,
nullable
:
false
,
defaultValue
:
0
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_Device_DeviceModelId"
,
table
:
"Device"
,
column
:
"DeviceModelId"
);
migrationBuilder
.
AddForeignKey
(
name
:
"FK_Device_DeviceModels_DeviceModelId"
,
table
:
"Device"
,
column
:
"DeviceModelId"
,
principalTable
:
"DeviceModels"
,
principalColumn
:
"DeviceModelId"
);
}
}
}
IoTSharp.Data.Storage/IoTSharp.Data.PostgreSQL/Migrations/ApplicationDbContextModelSnapshot.cs
浏览文件 @
10865b34
...
...
@@ -588,30 +588,24 @@ namespace IoTSharp.Migrations
b
.
Property
<
Guid
?>(
"CustomerId"
)
.
HasColumnType
(
"uuid"
);
b
.
Property
<
bool
>(
"Deleted"
)
.
HasColumnType
(
"boolean"
);
b
.
Property
<
Guid
?>(
"DeviceModelId"
)
.
HasColumnType
(
"uuid"
);
b
.
Property
<
int
>(
"DeviceType"
)
.
HasColumnType
(
"integer"
);
b
.
Property
<
DateTime
>(
"LastActive"
)
.
HasColumnType
(
"timestamp with time zone"
);
b
.
Property
<
string
>(
"Name"
)
.
HasColumnType
(
"text"
);
b
.
Property
<
bool
>(
"Online"
)
.
HasColumnType
(
"boolean"
);
b
.
Property
<
Guid
?>(
"OwnerId"
)
.
HasColumnType
(
"uuid"
);
b
.
Property
<
Guid
?>(
"ProduceId"
)
.
HasColumnType
(
"uuid"
);
b
.
Property
<
int
>(
"Status"
)
.
HasColumnType
(
"integer"
);
b
.
Property
<
Guid
?>(
"TenantId"
)
.
HasColumnType
(
"uuid"
);
...
...
@@ -624,8 +618,6 @@ namespace IoTSharp.Migrations
b
.
HasIndex
(
"CustomerId"
);
b
.
HasIndex
(
"DeviceModelId"
);
b
.
HasIndex
(
"OwnerId"
);
b
.
HasIndex
(
"ProduceId"
);
...
...
@@ -2207,10 +2199,6 @@ namespace IoTSharp.Migrations
.
WithMany
(
"Devices"
)
.
HasForeignKey
(
"CustomerId"
);
b
.
HasOne
(
"IoTSharp.Data.DeviceModel"
,
"DeviceModel"
)
.
WithMany
()
.
HasForeignKey
(
"DeviceModelId"
);
b
.
HasOne
(
"IoTSharp.Data.Gateway"
,
"Owner"
)
.
WithMany
(
"Children"
)
.
HasForeignKey
(
"OwnerId"
);
...
...
@@ -2225,8 +2213,6 @@ namespace IoTSharp.Migrations
b
.
Navigation
(
"Customer"
);
b
.
Navigation
(
"DeviceModel"
);
b
.
Navigation
(
"Owner"
);
b
.
Navigation
(
"Tenant"
);
...
...
IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/Migrations/20221006071915_remove_online_status.Designer.cs
0 → 100644
浏览文件 @
10865b34
此差异已折叠。
点击以展开。
IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/Migrations/20221006071915_remove_online_status.cs
0 → 100644
浏览文件 @
10865b34
using
System
;
using
Microsoft.EntityFrameworkCore.Migrations
;
#
nullable
disable
namespace
IoTSharp.Data.SqlServer.Migrations
{
public
partial
class
remove_online_status
:
Migration
{
protected
override
void
Up
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
DropForeignKey
(
name
:
"FK_Device_DeviceModels_DeviceModelId"
,
table
:
"Device"
);
migrationBuilder
.
DropIndex
(
name
:
"IX_Device_DeviceModelId"
,
table
:
"Device"
);
migrationBuilder
.
DropColumn
(
name
:
"LastActive"
,
table
:
"Device"
);
migrationBuilder
.
DropColumn
(
name
:
"Status"
,
table
:
"Device"
);
migrationBuilder
.
RenameColumn
(
name
:
"Online"
,
table
:
"Device"
,
newName
:
"Deleted"
);
}
protected
override
void
Down
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
RenameColumn
(
name
:
"Deleted"
,
table
:
"Device"
,
newName
:
"Online"
);
migrationBuilder
.
AddColumn
<
DateTime
>(
name
:
"LastActive"
,
table
:
"Device"
,
type
:
"datetime2"
,
nullable
:
false
,
defaultValue
:
new
DateTime
(
1
,
1
,
1
,
0
,
0
,
0
,
0
,
DateTimeKind
.
Unspecified
));
migrationBuilder
.
AddColumn
<
int
>(
name
:
"Status"
,
table
:
"Device"
,
type
:
"int"
,
nullable
:
false
,
defaultValue
:
0
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_Device_DeviceModelId"
,
table
:
"Device"
,
column
:
"DeviceModelId"
);
migrationBuilder
.
AddForeignKey
(
name
:
"FK_Device_DeviceModels_DeviceModelId"
,
table
:
"Device"
,
column
:
"DeviceModelId"
,
principalTable
:
"DeviceModels"
,
principalColumn
:
"DeviceModelId"
);
}
}
}
IoTSharp.Data.Storage/IoTSharp.Data.SqlServer/Migrations/ApplicationDbContextModelSnapshot.cs
浏览文件 @
10865b34
...
...
@@ -588,30 +588,24 @@ namespace IoTSharp.Data.SqlServer.Migrations
b
.
Property
<
Guid
?>(
"CustomerId"
)
.
HasColumnType
(
"uniqueidentifier"
);
b
.
Property
<
bool
>(
"Deleted"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
Guid
?>(
"DeviceModelId"
)
.
HasColumnType
(
"uniqueidentifier"
);
b
.
Property
<
int
>(
"DeviceType"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
DateTime
>(
"LastActive"
)
.
HasColumnType
(
"datetime2"
);
b
.
Property
<
string
>(
"Name"
)
.
HasColumnType
(
"nvarchar(max)"
);
b
.
Property
<
bool
>(
"Online"
)
.
HasColumnType
(
"bit"
);
b
.
Property
<
Guid
?>(
"OwnerId"
)
.
HasColumnType
(
"uniqueidentifier"
);
b
.
Property
<
Guid
?>(
"ProduceId"
)
.
HasColumnType
(
"uniqueidentifier"
);
b
.
Property
<
int
>(
"Status"
)
.
HasColumnType
(
"int"
);
b
.
Property
<
Guid
?>(
"TenantId"
)
.
HasColumnType
(
"uniqueidentifier"
);
...
...
@@ -624,8 +618,6 @@ namespace IoTSharp.Data.SqlServer.Migrations
b
.
HasIndex
(
"CustomerId"
);
b
.
HasIndex
(
"DeviceModelId"
);
b
.
HasIndex
(
"OwnerId"
);
b
.
HasIndex
(
"ProduceId"
);
...
...
@@ -2209,10 +2201,6 @@ namespace IoTSharp.Data.SqlServer.Migrations
.
WithMany
(
"Devices"
)
.
HasForeignKey
(
"CustomerId"
);
b
.
HasOne
(
"IoTSharp.Data.DeviceModel"
,
"DeviceModel"
)
.
WithMany
()
.
HasForeignKey
(
"DeviceModelId"
);
b
.
HasOne
(
"IoTSharp.Data.Gateway"
,
"Owner"
)
.
WithMany
(
"Children"
)
.
HasForeignKey
(
"OwnerId"
);
...
...
@@ -2227,8 +2215,6 @@ namespace IoTSharp.Data.SqlServer.Migrations
b
.
Navigation
(
"Customer"
);
b
.
Navigation
(
"DeviceModel"
);
b
.
Navigation
(
"Owner"
);
b
.
Navigation
(
"Tenant"
);
...
...
IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/Migrations/20221006071746_remove_online_status.Designer.cs
0 → 100644
浏览文件 @
10865b34
此差异已折叠。
点击以展开。
IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/Migrations/20221006071746_remove_online_status.cs
0 → 100644
浏览文件 @
10865b34
using
System
;
using
Microsoft.EntityFrameworkCore.Migrations
;
#
nullable
disable
namespace
IoTSharp.Data.Sqlite.Migrations
{
public
partial
class
remove_online_status
:
Migration
{
protected
override
void
Up
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
DropForeignKey
(
name
:
"FK_Device_DeviceModels_DeviceModelId"
,
table
:
"Device"
);
migrationBuilder
.
DropIndex
(
name
:
"IX_Device_DeviceModelId"
,
table
:
"Device"
);
migrationBuilder
.
DropColumn
(
name
:
"LastActive"
,
table
:
"Device"
);
migrationBuilder
.
DropColumn
(
name
:
"Online"
,
table
:
"Device"
);
migrationBuilder
.
RenameColumn
(
name
:
"Status"
,
table
:
"Device"
,
newName
:
"Deleted"
);
}
protected
override
void
Down
(
MigrationBuilder
migrationBuilder
)
{
migrationBuilder
.
RenameColumn
(
name
:
"Deleted"
,
table
:
"Device"
,
newName
:
"Status"
);
migrationBuilder
.
AddColumn
<
DateTime
>(
name
:
"LastActive"
,
table
:
"Device"
,
type
:
"TEXT"
,
nullable
:
false
,
defaultValue
:
new
DateTime
(
1
,
1
,
1
,
0
,
0
,
0
,
0
,
DateTimeKind
.
Unspecified
));
migrationBuilder
.
AddColumn
<
bool
>(
name
:
"Online"
,
table
:
"Device"
,
type
:
"INTEGER"
,
nullable
:
false
,
defaultValue
:
false
);
migrationBuilder
.
CreateIndex
(
name
:
"IX_Device_DeviceModelId"
,
table
:
"Device"
,
column
:
"DeviceModelId"
);
migrationBuilder
.
AddForeignKey
(
name
:
"FK_Device_DeviceModels_DeviceModelId"
,
table
:
"Device"
,
column
:
"DeviceModelId"
,
principalTable
:
"DeviceModels"
,
principalColumn
:
"DeviceModelId"
);
}
}
}
IoTSharp.Data.Storage/IoTSharp.Data.Sqlite/Migrations/ApplicationDbContextModelSnapshot.cs
浏览文件 @
10865b34
...
...
@@ -657,31 +657,25 @@ namespace IoTSharp.Data.Sqlite.Migrations
b
.
Property
<
Guid
?>(
"CustomerId"
)
.
HasColumnType
(
"TEXT"
);
b
.
Property
<
bool
>(
"Deleted"
)
.
HasColumnType
(
"INTEGER"
);
b
.
Property
<
Guid
?>(
"DeviceModelId"
)
.
HasColumnType
(
"TEXT"
);
b
.
Property
<
int
>(
"DeviceType"
)
.
HasColumnType
(
"INTEGER"
);
b
.
Property
<
DateTime
>(
"LastActive"
)
.
HasColumnType
(
"TEXT"
);
b
.
Property
<
string
>(
"Name"
)
.
HasColumnType
(
"TEXT"
)
.
UseCollation
(
"NOCASE"
);
b
.
Property
<
bool
>(
"Online"
)
.
HasColumnType
(
"INTEGER"
);
b
.
Property
<
Guid
?>(
"OwnerId"
)
.
HasColumnType
(
"TEXT"
);
b
.
Property
<
Guid
?>(
"ProduceId"
)
.
HasColumnType
(
"TEXT"
);
b
.
Property
<
int
>(
"Status"
)
.
HasColumnType
(
"INTEGER"
);
b
.
Property
<
Guid
?>(
"TenantId"
)
.
HasColumnType
(
"TEXT"
);
...
...
@@ -694,8 +688,6 @@ namespace IoTSharp.Data.Sqlite.Migrations
b
.
HasIndex
(
"CustomerId"
);
b
.
HasIndex
(
"DeviceModelId"
);
b
.
HasIndex
(
"OwnerId"
);
b
.
HasIndex
(
"ProduceId"
);
...
...
@@ -2431,10 +2423,6 @@ namespace IoTSharp.Data.Sqlite.Migrations
.
WithMany
(
"Devices"
)
.
HasForeignKey
(
"CustomerId"
);
b
.
HasOne
(
"IoTSharp.Data.DeviceModel"
,
"DeviceModel"
)
.
WithMany
()
.
HasForeignKey
(
"DeviceModelId"
);
b
.
HasOne
(
"IoTSharp.Data.Gateway"
,
"Owner"
)
.
WithMany
(
"Children"
)
.
HasForeignKey
(
"OwnerId"
);
...
...
@@ -2449,8 +2437,6 @@ namespace IoTSharp.Data.Sqlite.Migrations
b
.
Navigation
(
"Customer"
);
b
.
Navigation
(
"DeviceModel"
);
b
.
Navigation
(
"Owner"
);
b
.
Navigation
(
"Tenant"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录