---
phase: 04-gateway-entity-update
plan: 01
type: execute
wave: 1
depends_on: []
files_modified:
- src/Services/GatewayService.cs
- src/Program.cs
autonomous: true
requirements: []
user_setup: []
must_haves:
truths:
- "编译错误已修复"
- "GatewayService 使用新的 IClusterStore 接口"
- "实例操作改为通过 Cluster.Destinations 管理"
artifacts:
- path: "src/Services/GatewayService.cs"
provides: "GatewayService 使用 IClusterStore"
- path: "src/Program.cs"
provides: "依赖注入更新"
key_links:
- from: "GatewayService"
to: "IClusterStore"
via: "依赖注入"
---
适配 Platform 1.0.12 中的 Gateway 实体重构,修复编译错误,更新 Console 代码以使用新的 GwCluster/GwDestination/GwTenantRoute 模型。
@.planning/docs/gateway-entity-changes-1.0.12.md
## 编译错误
当前编译错误:
```
error CS0246: IInstanceStore 找不到
```
## 变更摘要
1. **IInstanceStore 已移除** - 实例现在是 GwCluster 的内嵌对象
2. **IClusterStore 是新接口** - 包含 Destination 管理方法
3. **数据模型变化**:
- GatewayInstance → GwDestination(内嵌值对象)
- GatewayCluster → GwCluster(聚合根,包含 Destinations)
- 路由通过 ClusterId 关联到集群
任务 1: 更新 Program.cs 依赖注入
src/Program.cs
1. 移除 IInstanceStore 的注入(如果有)
2. 添加 IClusterStore 的注入:
```csharp
builder.Services.AddScoped>();
```
3. 确保使用正确的 PlatformDbContext
dotnet build --no-restore 2>&1 | head -30
Program.cs 依赖注入已更新
任务 2: 更新 GatewayService 使用 IClusterStore
src/Services/GatewayService.cs
1. 移除 IInstanceStore 依赖
2. 添加 IClusterStore 依赖注入
3. 更新实例相关方法:
- GetInstancesAsync → 从 Cluster.Destinations 获取
- AddInstanceAsync → 使用 IClusterStore.AddDestinationAsync
- RemoveInstanceAsync → 使用 IClusterStore.RemoveDestinationAsync
- UpdateInstanceWeightAsync → 使用 IClusterStore.UpdateDestinationAsync
4. 更新数据模型映射:
- GatewayInstanceDto → 从 GwDestination 映射
- GatewayClusterDto → 从 GwCluster 映射
dotnet build --no-restore 2>&1 | head -30
GatewayService 已更新为使用 IClusterStore
任务 3: 验证编译通过
运行完整编译验证:
```bash
dotnet build src/Fengling.Console.csproj
```
确保没有编译错误。
dotnet build src/Fengling.Console.csproj 2>&1 | tail -10
编译通过,无错误
1. dotnet build 编译通过
2. GatewayService 使用 IClusterStore
3. 实例操作通过 Cluster.Destinations 管理
- [x] IInstanceStore 依赖已移除
- [x] IClusterStore 已集成
- [x] 编译错误已修复
- [x] GatewayService 功能正常