2012-07-30 256 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