2

Entity Framework 4に(重要な場合はCTP4とCode Firstを使用して)主キーと外部キーを自動的に識別するために使用される規則を変更する方法はありますか?キーをマークするために「id」サフィックスではなく「pk/fk」プレフィックスを使用するレガシーデータベースでEFを使用しようとしています。また、「fkAddressHome」や「fkAddressWork」など、アドレステーブルへの複数の外部キーがあることも珍しくありません。

テーブルごとにこれらの変更を指定する必要がないように、この動作を体系的に変更する方法をお勧めします。OnModelCreatingメソッドで列名をオーバーライドするオプションを調べましたが、その方法で1つの列を追加すると、すべてを追加する必要があることに気づきました。そして、それは私のDRYの感性に違反しました。

ただし、任意の解決策をいただければ幸いです。EF4、特にCTP4のCode Firstの機能強化は、本当に本当に素晴らしいです。EFの次のバージョンに他に何ができるかを見るのを楽しみにしています。助けてくれてありがとう。

アップデート

OnModelCreatingメソッドに以下を追加することで、関係をマッピングすることができました。

modelBuilder.Entity<User>()
    .HasRequired<Address>(p => p.Address)
    .HasConstraint((p, u) => p.fkAddressHome == u.pkAddress);

それが最もエレガントなアプローチなのか、それとも最終的に問題が発生するのかはわかりませんが、今のところは機能しています。

4

1 に答える 1

1

Model Builderとの流暢なインターフェースは、それを行うための適切な方法です。DataAnnotation属性を使用することもできます(属性が必要な場合)。

http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspx

于 2010-09-25T23:44:37.750 に答える