【问题标题】:Entity Framework Entity not Auto-Populating Object on Save实体框架实体在保存时不自动填充对象
【发布时间】:2012-07-30 23:05:50
【问题描述】:

我有以下课程:

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 对象为空。它具有适当的 ProductID 集,但不填充实际产品。我尝试了一些类似于以下的不同映射,但我对实体框架有点陌生。

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

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    我相信您还必须遍历产品并 Add() 它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      相关资源
      最近更新 更多