我的团队正在使用 SqlMetal 从 SqlServer 数据库生成数据库类。它适用于我们所有现有的类和外键关联,但它拒绝为我们要添加的特定新外键关联生成代码。这个键是从一个审计表到一个全局事件表,详细说明审计记录的创建时间和创建它的用户。系统中存在许多其他审计表和这个全局“事件”表之间的类似外键关联,SqlMetal 为这些关联生成代码。
我尝试通过以下方式解决此问题:
- 删除并重新创建表
- 删除主键
- 创建具有不同名称的新相同表
- 从表中删除所有其他字段
- 转储索引
- 执行新的数据库构建
- 重命名外键
以上似乎都不能解决问题。但是,SqlMetal 确实为从该表到系统中一些(但不是全部)其他表的外键关联正确地生成了代码。这两个表之间的关联只会在我更改原始创建表脚本以包含外键关联而不是稍后运行它(或新的等效表)时生成。不幸的是,我们需要能够将此更改作为脚本部署到我们现有的生产数据库中,因此这不是一个选项。我看过几篇文章和论坛帖子提到了类似的问题,但似乎都没有给出任何解决方案甚至是解释。