我会在我的 Web 项目中使用 3 层架构。DAL -> EF 4 包装器,带有经典的 CRUD 方法(AddEntity、RemoveEntity 等) BAL -> 业务逻辑和查询公开(selectByName、byCity、bySomeOtherProperty)。用户界面 - Aspx 页面
我的问题是关于 EF 公开的 navigationProperty。如果我有一个 CustomerRepostiory,aspx 方面我不想允许对不是客户的实体进行操作,假设以下 POCO 类:
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 类包装器才能“隐藏”一些属性?哪个真的是最好的方法?