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; }
    ...
 }

Order を永続化するときに、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);

どんな助けでも大歓迎です。

4

1 に答える 1

0

製品を反復処理し、それらも Add() する必要があると思います。

于 2012-07-30T23:21:38.970 に答える