0
使用SubSonic 3 ActiveRecord,我从具有外键的现有数据库生成代码。为了确保数据库架构在切换数据库时始终是正确的,我将迁移代码放置在应用程序的开始位置,对ActiveRecord.tt生成的每个类使用IDataProvider.MigrateToDatabase<MyClass>()
。事实证明,迁移代码不会重新生成外键。SubSonic 3 ActiveRecord迁移忽略外键
我应该如何处理FKS:
- 完全忘记FKS,并在代码中处理级联删除。优点:Rails方式,业务逻辑保存在代码中。缺点:需要处理交易,代码变得更加丑陋;如果数据库被切换/清除(需要始终保持原始模式重新生成/修改AR代码,否则生成的一对多属性将丢失?),数据库和ActiveRecord之间的模式往返变得不可能。同样,我的同事可能会认为我很生气。
- 添加一个步骤进行移植以手动创建FK。优点:模式将始终保持最新; AR代码将始终可以重新生成。缺点:数据库依赖(小问题?)
- 以某种方式找到一种方法来在代码中定义FK关系,以便可以正确迁移模式。
我做错了吗?我会很感激任何建议。
嘿罗布 我完全按照你的建议,但由于某种原因亚音速不能决定主键。这里是问题的链接。 http://stackoverflow.com/questions/1806953/subsonic-cant-decide-which-property-to-consider-the-key-foreign-key-issue 请咨询解决方案,因为它已成为一个节目塞为了我。 谢谢 AJ – 2009-11-30 17:36:41
嗯,该链接似乎是borked。我不知道你的意思是“找不到主键” - 你有没有试过PrimaryKey属性? – 2009-12-03 00:17:04