私は階層(ブランド)パー表とEentity Frameworkのモデルともタイプ(ビークル)パー表このような継承があります。複数の継承モデル間の関係をどのようにマップする必要がありますか?
を(車両・ブランドは抽象クラスです) 。
これまでのところ、Vehicle.OfType<>
またはBrand.OfType<>
メソッドを使用して、linqクエリで派生したエンティティにアクセスできます。
ここで、ブランドエンティティは私の概念モデルでVehicleに関連しているので、問題は、EFモデルで関係をどのように作って、VehicleとBrandの間でナビゲーションプロパティを使用することができますかブランドのTPHの継承の一貫性は?私の最初のアプローチは次のように、唯一の派生clasesを関連付けることだった:
しかし、私はこれを行う場合、私が直接車両からブランドへのアクセスを持っていないので、私は希望
のように、二重の関係(派生とベースの間)をしなければなりません。これは私の今のところ働いていますが、何とか複製関係がありますが、これは正しいのですか?あなたはより良いアプローチをしていますか?私のモデリングには間違いがありますか?
悪魔の提唱者の質問モデル - しようとしているものの基本的なポイントのいずれか見逃していないことを願っています:ホンダブランドってどんなの? IMHO、あなたはここで継承を使い過ぎています。 –
私は両方の車(バイクとバイク)を持っているブランドがあると知っていますが、その場合は "ホンダカー"と "ホンダバイク"と区別したいので、それは過剰使用だと思うのはなぜですか? – Milox
オブジェクトは1つのタイプしか持つことができないためです。ホンダにとってはこれが正しいと思っても、どこのブランドでもそうではありません。そのような単一のビジネス属性のフラグとしてタイプを使用すると、スキーマを進化させることが難しいコーナーに戻ることができます。私はこれを連想としてモデル化します。[ブランド:Honda]は[CarBrand:HondaCars](つまり階層の代わりに2つのインスタンス)に関連しています。次に、両方を含むことができるブランドを持っていたい場合は、基数を1:1から1:*に変更できます。 –