1

これは私が尋ねている明確なはい/いいえの質問であり、実装に関係なく、法律に違反するかしないかのどちらかであると私は信じています. 私の質問は、エンティティ フレームワーク モデルで作成されたナビゲーション プロパティは、デメテルの法則を破るのでしょうか? 1 つのエンティティがあまりにも多くの知識を持ち、以下のようなナビゲーション プロパティ インスタンスにアクセスできるため、そうしていると思います。

Orders.Products.Price

上記のコードOrdersでは、ナビゲーション プロパティを含むメイン エンティティにありますProducts。多くの場合、その関連オブジェクトの詳細にアクセスするには、そのナビゲーション プロパティをドリルダウンする必要があります。一般的にインスタンスプロパティを持つことも法律を正しく破らないと思いますか?

これを解決するための支援が役に立ちます、ありがとう!

4

1 に答える 1

1

はい、そうですが、問題ではありません。デメテルの法則に厳密に従うことはほとんど不可能です。高い設計品質、高いコード品質、保守性、可読性を維持するには、妥協が必要です。EF は、主に EF がオブジェクトとデータベース レコード間のマッピングを行う方法に関連する追加の要件を設定します。一部のタイプのマッピング (EDMX) では、エンティティ プロパティの可視性を変更できるため、内部または保護されたプロパティの上に独自の抽象化レイヤーを構築できますが、一部の EF 機能が失われる可能性があります。

デメテルの法則と ORM ツールに興味がある場合は、ドメイン駆動設計と集約ルートも確認してください。

于 2012-07-09T19:46:49.733 に答える