2012-07-30 274 views
0

我有下面的类对象:实体框架的实体并不自动填充上保存

public class Order 
{ 
    public Order() { LineItems = new List<OrderLineItem>(); } 
    public int OrderID { get; set; } 
    .. 
    public virtual ICollection<OrderLineItem> LineItems { get; set; } 
    .. 
} 


public class OrderLineItem 
{ 
    public int OrderLineItemID { get; set; } 

    public int ProductID { get; set; } 
    public virtual Product Product { get; set; } 

    public int Quantity { get; set; } 

} 

public class Product 
{ 
    public int ProductID { get; set; } 
    ... 
} 

当我坚持订单,我已经设置了OrderLineItems到相应的字段。但是,使用以下代码将其保存到数据库后:

public void SaveOrder(Order ord) 
    { 
     if (ord.OrderID == 0) 
     { 
      context.Orders.Add(ord); 
     } 
     else 
     { 
      var currentCat = context.Orders.Find(ord.OrderID); 

      if (currentCat != null) 
       context.Entry(currentCat).CurrentValues.SetValues(ord); 
      else 
       context.Entry(ord).State = EntityState.Modified; 
     } 
     context.SaveChanges(); 
    } 

OrderLineItem.Product对象为null。它具有适当的ProductID集,但不会填充实际产品。我尝试了一些类似于以下的不同映射,但我对实体框架有点新鲜。

modelBuilder.Entity<OrderLineItem>() 
     .HasRequired(c => c.Product); 

任何帮助将不胜感激。

回答

0

我相信你必须遍历产品和Add()它们。

+0

产品已在数据库中。 – JCab 2012-07-31 14:56:20