Entity framework 更新两个实体框架实体之间的关系?

Entity framework 更新两个实体框架实体之间的关系?,entity-framework,automapper,Entity Framework,Automapper,我的数据层中有两个相关的实体框架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 in

我的数据层中有两个相关的实体框架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; }
}
公共类秩序
{
公共int Id{get;set;}
公共虚拟销售状态SalesStatus{get;set;}
}
公共类销售状态
{
公共销售状况()
{
订单=新列表();
}
公共int Id{get;set;}
公共字符串名称{get;set;}
公共虚拟列表顺序{get;set;}
}
公共类OrderVM
{
公共int Id{get;set;}
public SalesStatus SalesStatus{get;set;}
}
我正在使用Automapper将这些映射到我的视图模型,然后再映射回来

cfg.CreateMap<Order, OrderVM>()
    .MaxDepth(4)
    .ReverseMap();
cfg.CreateMap()
.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;
}
private bool SaveOrderToDb(OrderVM OrderVM)
{
使用(var db=new MyContext())
{                
var order=AutomapperConfig.MapperConfiguration.CreateMapper().Map(orderVM);
order.SalesStatus=db.SalesStatuses.Find(Convert.ToInt16(orderVM.SalesStatusSelectedValue));
db.Set().AddOrUpdate(订单);
db.SaveChanges();
}
返回true;
}

这不会更新数据库中的关系。为什么?我遗漏了什么?

因为
AddOrUpdate
标记为
已添加的
(包括子实体)或
已修改的
(在本例中只影响根实体,
顺序)。您找到解决方案了吗?