1

下面的代码将正确的值更新到 OBJECT_TYPES 表中,但是 OBJECT_ITEMS 表正在被覆盖,但我不知道为什么。任何人都可以帮忙吗?

 var templateId = Request["id"].AsInt();
var dbcontext = new STDEntities1();
var query = dbcontext.OBJECT_TYPES.Where(o => o.ID == templateId);
var template = query.FirstOrDefault();
var newItem = new OBJECT_TYPES
{
    CATEGORY_ID = template.CATEGORY_ID,
    COMPANY_ID = template.COMPANY_ID,
    OBJECT_NAME = "** Select A Name **",
    HEIGHT = template.HEIGHT,
    WIDTH = template.WIDTH,
    TEMPLATE = template.ID
};


foreach (var field in template.OBJECT_ITEMS)
{
    newItem.OBJECT_ITEMS.Add(field);

}
dbcontext.OBJECT_TYPES.Add(newItem);
dbcontext.SaveChanges();
4

1 回答 1

1

发生这种情况是因为您添加的字段实际上是由 dataContext/dbContext 跟踪的对象,甚至有一个 id。所以这些值被覆盖了。

尝试创建一个新字段或尝试从上下文中分离该字段,然后将 Id/Primary 键设置为 0 并尝试再次插入它。

于 2013-04-15T13:04:32.147 回答