不想在EF 6.0中更新实体

时间:2014-04-14 00:24:53

标签: c# asp.net-mvc entity-framework-6

我有一个方法是从数据库中读取数据实体,将其转换为视图模型。然后在该方法中,有另一个表更新。因此,第一个实体更改已提交回数据库。

我该如何解决这个问题?这是我将OrderHeader实体附加到视图模型的方式吗?注意viewMode.OrderHeader的类型为OrderHeader。有没有办法表明我只使用数据的副本,以便后续提交不会保存这些更改?我是否需要将此实体从上下文中分离出来?

public OrderHeaderViewModel ConvertClassToViewModel(OrderHeader entity)
            {
                OrderHeaderViewModel viewModel = new OrderHeaderViewModel();
                viewModel.OrderHeader = entity;
                viewModel.OrderHeader.CustomerRequestedDateTime =
                    ManageTimeDetailsAppServ.ConvertFromUTCDateTime(viewModel.OrderHeader.CustomerRequestedDateTime).Value; <------ THIS CHANGE IS BEING COMMITTED TO THE DB.
                return viewModel;
            }

1 个答案:

答案 0 :(得分:0)

通过将.AsNoTracking()添加到存储库搜索来修复。

var orderHdr = _orderHeaderRepository.SearchFor(predicate).AsNoTracking().Single();