我有1对多的映射,如何映射回父对象?

时间:2013-04-18 20:39:34

标签: c# entity-framework asp.net-mvc-4 entity-framework-4.1

我有一个映射:

public class Order
{
   public int Id {get;set;}
   public virtual ICollection<Item> Items {get;set;}
}

public class Item
{
   public int Id;
   public int OrderId;
}

我使用以下方式映射它们:

public class OrderConfiguration : EntityTypeConfiguration<Order>
{
  public OrderConfiguration()
  {
       this.HasKey(x => x.Id);
       this.HasMany(x => x.Items).WithOptional().HasForeignKey(v => v.OrderId);
  }
}

但是现在我希望能够做到这一点(对于只读操作,我不会对此进行更新):

someItem.Order

如何更改映射以允许此操作?

另外,如果我加载了100个项目,是否可以急切加载所有这些项目的订单图表?

1 个答案:

答案 0 :(得分:2)

public class Item
{
   public int Id;
   public int OrderId;
   public virtual Order Order { get; set; } 
}

我不明白你的意思是图表。但你可以这样做

context.Items.Include(e => e.Order).Where(e => filter100(e)).ToList();

那也应该急于加载订单。