Web プロジェクトで 3 層アーキテクチャを使用します。DAL -> 従来の CRUD メソッド (AddEntity、RemoveEntity など) を使用した EF 4 ラッパー BAL -> ビジネス ロジックとクエリの公開 (selectByName、byCity、bySomeOtherProperty)。UI - Aspx ページ
私の問題は、EF によって公開されたナビゲーション プロパティに関するものです。CustomerRepostiory がある場合、aspx 側では、次の POCO クラスを想定して、Customer ではないエンティティに対する操作を許可したくありません。
public class Customer
{
public int Id {get; set;}
public string Name {get; set;}
public ICollection<Orders> Order{get;set;}
}
aspx では次のように実行します。
var customer = bll.getCustomerByName("alex");
customer.Order.Add(new ..) // BAD, I don't want allow it
私は何をすべきか?一部のプロパティを「非表示」にするために、poco クラス ラッパーを作成する必要があるのでしょうか。本当に最善のアプローチはどれですか?