修复路径删除时数据库未同步删除的bug
问题描述: 在路径编辑界面删除路径时,虽然UI列表和3D可视化被正确清除, 但数据库中的路径记录没有被删除,导致数据不一致。 根本原因: PathEditingViewModel.ExecuteDeletePathAsync 方法直接操作集合: - 直接调用 _pathPlanningManager.ModifiableRoutes.Remove(coreRoute) - 绕过了 PathPlanningManager.DeleteRoute() 方法 - PathPlanningManager.DeleteRoute() 包含数据库删除逻辑 修复方案: ✅ 使用 PathPlanningManager.DeleteRoute() 替代直接集合操作 ✅ 确保完整的删除流程: 1. 清除3D可视化显示 2. 调用 PathPlanningManager.DeleteRoute() - 从内存集合删除 - 调用 PathDatabase.DeletePathRoute() - 更新当前路径状态 3. 更新UI列表 修改文件: - src/UI/WPF/ViewModels/PathEditingViewModel.cs (754-764行) 影响范围: - 修复数据库一致性问题 - 增强日志记录(记录删除成功/失败) - 不影响现有UI和可视化功能 测试建议: 1. 在路径列表中删除路径 2. 重启Navisworks验证路径是否真正被删除 3. 检查数据库中PathRoutes表记录是否减少 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
e9e0d8c83f
commit
a0a667d45d
@ -745,13 +745,22 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
// 通知PathPlanningManager删除对应的路径
|
||||
// 通知PathPlanningManager删除对应的路径(包括数据库删除)
|
||||
if (_pathPlanningManager != null)
|
||||
{
|
||||
var coreRoute = _pathPlanningManager.Routes.FirstOrDefault(r => r.Name == pathName);
|
||||
if (coreRoute != null)
|
||||
{
|
||||
_pathPlanningManager.ModifiableRoutes.Remove(coreRoute);
|
||||
// 使用PathPlanningManager的DeleteRoute方法,确保数据库也被删除
|
||||
bool deleteSuccess = _pathPlanningManager.DeleteRoute(coreRoute);
|
||||
if (deleteSuccess)
|
||||
{
|
||||
LogManager.Info($"删除路径:已从PathPlanningManager和数据库删除路径: {pathName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
LogManager.Warning($"删除路径:PathPlanningManager删除失败: {pathName}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user