2010-11-22 12 views
3

私はかなり大きなEntity Framework 4モデル(モデルが最初にあります)を持っています。これは外部キープロパティなしですべての関係が関連付けとして定義されています。EF4;モデルに外部キーを追加する

ダイアグラム全体にFKプロパティを追加する方法を知っている人は、手動でダイアグラムを再作成したり、手動で追加したりすることはできますか?

データベースを生成し、データベースから新しいモデルを作成し、その後、より良い提案がない限り、クリーンアップを行う方法があると思いますか?

私はXMLを調整するために何かを書くことが別の方法だと考えています。

+0

更新 - これは慎重に手動で行っています。誰かがより良い方法を知っている場合に備えて質問を開いたままにしておくと、誰でもFKを遡って追加したいと思う最後の時間にはならないと確信しています。 – RichardW1001

+1

私はこれも私に起こった。私はそれに不満を持ち、Model-Firstアプローチをあきらめ、私のソリューションにデータベースプロジェクトを作成しました。このようなソリューションでデータベーススキーマを使用すると、時間の経過とともにスキーマを進化させるとデータベースを簡単に移行できます。 –

答えて

0

XMLを操作するいくつかのコードを書くことで、必要なものが得られますが、将来的に再使用する予定がない限り、デザイナーで手動で行う方が良いと思います。あなたがそれを行う時間があれば、Entity Framework DSLの内部の仕組みを学ぶ優れた方法であることがわかります。私の経験では、スキーマが生きていたらモデルを変更するときに役立ちます。

0

ここで私が撮ったの手順です:

  1. が適切な型のスカラープロパティ(例えば「製品」の「区分」)依存エンティティ
  2. マップの追加は、そのデータベース内の適切な列にプロパティデザイナーのマッピングウィンドウを使用
  3. アソシエーションを編集するには、アソシエーションに参照制約を追加する必要があります。プロパティウィンドウでこれを行うことができます。プリンシパルはあなたが参照しているエンティティ(つまり「カテゴリ」)であり、従属物は他のもの(つまり「製品」)になります。
  4. これがすべて必要です。そのファイルを "検証"すると、既存のアソシエーションセットマッピングについて不平を言ったEFでエラーが発生します。これは、現在そのマッピングに2つの戦略があるためです。これを削除する必要があります。私ができることがわかった唯一の方法は、xmlファイルを開くことでした。 VSはその領域を四角で強調表示します。そのノードを削除するだけでよいのです。
関連する問題