重新插入修改后的对象EntityFramework

时间:2017-01-10 13:16:28

标签: c# entity-framework

我有奇怪的行为,

使用entityframwork 6我检索对象列表,然后我修改外键然后再次插入列表。但结果是插入完成但外键未被修改。

 var clients = Uow.Clients.GetAll().where(x => x.zipCode= newZip);
            var newClients = new List<Client>();
            foreach (var client in clients)
            {
                client.City = null;
                client.cityId = newCityId;
                newClients.Add(client);
            }
            Uow.Clients.AddMany(newClients);
            Uow.Commit();

如果你想知道我是否存在更改或AddMany是否有效,答案是肯定的,我使用这些功能很多,一切正常。

1 个答案:

答案 0 :(得分:1)

可能发生的情况是,当您执行搜索时,您的实体会通过DbContext的{​​{1}}链接到上下文,尝试使用ChangeTracker将搜索与DbContext断开连接然后修改数据。试试这个:

AsNoTracking()

PS:我推断出Uow是一个DbContext对象