SubSonic 3 ActiveRecordを使用して、外部キーを持つ既存のデータベースからコードを生成しました。データベースを切り替えるときにデータベースのスキーマが常に正しくなるように、私はアプリケーションの先頭に、ActiveRecord.ttによって生成された各クラスに対してIDataProvider.MigrateToDatabase<MyClass>()
を使用して、移行コードを配置しました。移行コードは外部キーを再生成しません。SubSonic 3 ActiveRecordの移行で外部キーが無視される
どのように私はFKSに対処する必要があります
- は完全FKSを忘れて、コード内でカスケード接続の削除を処理します。長所:Railsの方法では、ビジネスロジックはコード内に保持されます。短所:トランザクションを処理する必要があり、コードははるかに醜いものになります。データベースが交換/クリアされても、データベースとActiveRecordの間のスキーマ往復は不可能になります(ARコードを再生成/変更するために常に元のスキーマを保持する必要があります。また、私の同僚は私が怒っていると思うかもしれません。
- マイグレーションにステップを追加して、手動でFKを作成します。利点:スキーマは常に最新です。 ARコードは常に再生することが可能です。短所:データベースの依存性(軽微な問題?)
- 何らかの形でスキーマを適切に移行できるように、コード内にFK関係を定義する方法があります。
私は間違っていますか?私は何かアドバイスをいただければ幸いです。
Hey Rob 私はちょうど提案したアプローチに従っていますが、何らかの理由でSubsonicが主キーを決定できません。ここに問題のリンクがあります。 http://stackoverflow.com/questions/1806953/subsonic-cant-decide-which-property-to-consider-the-key-foreign-key-issue ショーストッパーとなったのでアドバイスをお願いします私のために。 ありがとう AJ –
このリンクは骨が折れているようです。私はあなたが "プライマリキーを見つけることができません"という意味を知りません - プライマリキー属性を試しましたか? –