0

如果我有一个主表,比如说订单,以及一个项目子表,并且项目表有一个项目编号字段,但它也有一个可以为空(可选)的颜色字段,仅适用于某些项目。如何使用实体框架在更新订单表的同时更新项目表?

这是到目前为止我所拥有的代码示例。两个问题,我只输入我的一个项目,根据我的研究表明,我不能在项目表中添加另一个字段?

    foreach (Guid c in AllItems)
    { Items.OrderItemID = Guid.NewGuid();
      ITemsOrderID = order.OrderID;
      ITems.ItemID = c;
      If (ItemID = ItemThatLetsYouChoseAColorID)
      {
          Items.ItemColorID = ColorID;
      } else {
          Items.ItemColorID = null;
      }
     }
     context.Orders.AddObject(Orders);
     context.Items.AddObject(Items);
     context.SaveChanges();

我的 Orders 表插入了一条记录,并且 Items 插入了一条记录。恐怕我在这里缺少一些基本的东西。顺便说一句,这是实体框架 4.0,它。我相信,不需要使用EntityKey。

4

2 回答 2

1

Items仅在foreach.

你有没有测试过类似的东西:

foreach (Guid c in AllItems)
{
    var Item = new Item();

    Item.OrderItemID = Guid.NewGuid();
    Item.OrderID = order.OrderID;
    Item.ItemID = c;
    If (ItemID = ItemThatLetsYouChoseAColorID)
    {
        Item.ItemColorID = ColorID;
    }
    else
    {
        Item.ItemColorID = null;
    }

    context.Items.AddObject(Items);
}

context.Orders.AddObject(order);
context.SaveChanges();

我不确定你的意思是什么

我无法在 items 表中添加其他字段

您应该更准确地了解您的实际期望。插入一行,在表中添加一列...?什么是“场”?

于 2012-07-02T15:09:42.860 回答
0

这是工作代码。我在 foreach 项目循环之外有新项目,因此覆盖了该值。另外,我需要将每一个添加到上下文中。我遇到了困难,希望它可以帮助其他人:

    <-fill the order object->
    foreach (Guid i in Items)
    {
        **Items item = new Items();**
        item.ItemID = Guid.NewGuid();
        item.OrderID = order.OrderID;
        if (i == ItemWithColorGuid)
        {
            foreach (Guid c in Colors)
            {
                **Items color = new Items();**
                color.ItemsID = Guid.NewGuid();
                color.OrderID = order.orderID;
                color.itemID = g;
                color.colorID = c;
                context.item.AddObject(color);
            }
        }
        else
        {
            item.ItemID = i;
            item.ColorID = null; 
            context.item.AddObject(item);
        }                        
    }
    context.orders.AddObject(order);
    context.SaveChanges();
于 2012-07-02T19:52:21.970 回答