我的数据层中有两个相关的Entity Framework 6类。
public class Order
{
public int Id { get; set; }
public virtual SalesStatus SalesStatus { get; set; }
}
public class SalesStatus
{
public SalesStatus()
{
Orders = new List<Order>();
}
public int Id { get; set; }
public string Name { get; set; }
public virtual List<Order> Orders { get; set; }
}
public class OrderVM
{
public int Id { get; set; }
public SalesStatus SalesStatus { get; set; }
}
我正在使用Automapper将这些映射到我的视图模型,然后重新映射。
cfg.CreateMap<Order, OrderVM>()
.MaxDepth(4)
.ReverseMap();
状态实体用于填充下拉列表。
在我的方法中,我将获取所选值并尝试将订单记录更新为新选择的状态。
private bool SaveOrderToDb(OrderVM orderVM)
{
using (var db = new MyContext())
{
var order = AutomapperConfig.MapperConfiguration.CreateMapper().Map<OrderVM, Order>(orderVM);
order.SalesStatus = db.SalesStatuses.Find(Convert.ToInt16(orderVM.SalesStatusSelectedValue));
db.Set<Order>().AddOrUpdate(order);
db.SaveChanges();
}
return true;
}
这不会更新数据库中的关系。为什么?我错过了什么?