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