0

嗨,我是 Entity Framework 的新手,这就是我需要的,有两个类,比如说“客户”和“订单”:

Class CustomerBE<br/>
{
    Public int CustomerID { get;set;}
    ...Other properties<br/>
}

Class OrderBE<br/>
{
    Public int OrderID{ get; set; }
    Public int CustomerID{ get;set;}
    Public CustomerBE Customer {get;set}
}

如何将订单映射到客户?,我已经阅读了其他一些帖子和一些其他示例,他们正在做的是在 customerBE 中创建一个订单集合,例如:

Class CustomerBE
{
    Public int CustomerID{get;set;}
    Public Virtual ICollection Orders<orderBE>{get;set;}
}

然后他们将客户映射到有很多订单,使用客户类中的订单集合,但是,对我来说这是不正确的,该类的消费者将能够使用客户类上的订单属性来访问所有客户的订单,我不让他们这样做:

ICollection<OrderBE> customerOrders = customer.Orders //I don't what this



在什么情况下我想获得所有客户订单?,通常我们不希望客户订单按给定标准(日期,状态等),所以对于我来说,而不是使用该属性,我认为最好使用订单存储库通过给定的标准访问客户订单,例如: 所以任何机构都知道如何使用代码优先方法在订单和客户之间进行映射,而在客户类中没有订单集合?


ICollection customerOrders = ordersRepository.GetCustomerOrdersByDate(customer.ID, Today.Date) //This is what i want, not orders = customer.oders


4

1 回答 1

1

在 DbContext 类中使用 Fluent API:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<OrderBE>().HasRequired(x => x.Customer);
}
于 2012-07-16T17:29:48.367 回答