2011-01-06 2 views
0

私はORMデザインの健全性チェックを行うためにこの質問を投げたいと思っています。私の状況は、私のデザインでは、他の4つのクラスとの関連性を持つクラスがあることです。だからクラスA、B、C、D、EクラスB、C、D、EがクラスAと "Has-An"の関係にあるなら、LINQ-Toで知っている唯一の方法 - 関係を定義するためのSQLは、関係を持つすべてのエンティティに対して、A内に外部キー列を作成することです。これは動作しますが、データベースに4つの列があり、3つの列が常にNULLになるという欠点があります。これはORMツールの単なる制限ですか?どんなアドバイスや提案も感謝します。LINQ-To-SQLでの複数のオブジェクトの関連付けのモデリング

答えて

0

私はこのタイプの関連付けの正確な名前を忘れていますが、私はそれが多相関連と信じています。これは、LINQのエンティティは、ポリモーフィック団体にRuby on Railsにはないような方法をサポートしていないというのが私の理解ですが、何をやりたいと思いますことは次のとおりです。

  1. 自分を定義することなく、テーブルA、B、C、D、Eを作成します。互いの関係。
  2. 各テーブルにUniqueIdentifier列を割り当てます(これはGUIDです)。
  3. 「関係」テーブルを作成する(おそらくより良い名前を出したいと思うかもしれません)
  4. 関係テーブルには2つのカラムがありますが、ソースとデスティネーションの両方がGUIDタイプかUniqueIdentifierタイプですかサーバが呼び出す)

悪い点は、MSSQLが外部キーの関係を強制できないことです(これがLINQエンティティがサポートしていない理由です)。そのため、ビジネスロジックで処理する必要があります

これは、タイプFを追加し、同じテーブルを使用してHを表現するオプションを提供しますFとAの間の関係として。

+0

チップコリントありがとう。私がやろうとしていることの名前を知っているだけで助けになります!おそらく次のプロジェクトにNHibernateを使用しています。 –

関連する問題