dbcontext throwAmbiguousMatchException

本文关键字:throwAmbiguousMatchException dbcontext | 更新日期: 2023-09-27 18:02:13

我尝试将一个类序列化为xml。在序列化之后,我想更新状态。我能够找到第一个顺序并更改statusId,当转到第二个顺序时,这里是我遇到模糊匹配发现错误的地方。

这里是主要的方法:

 using (var Context = new Context())
            {

                var orderRepo = new OrderRepository(Context);
                foreach (var orderId in orderIds)
                {
                    var order = orderRepo.Find(orderId);
                    order.orderStatusID = 5;
                }
                orderRepo.Save();
            }

在OrderRepository.cs

     public Order Find(int id)
            {
                return _context.Orders.Find(id);
            }
   public void Save()
        {
            try
            {
                _context.SaveChanges();
            }
            catch (Exception ex)
            {
               _logger.Error(ex);
            }
        }

order.cs:

  [XmlRoot("Orders")]
    [NotMapped]
    public class OrderCollection
    {
        public OrderCollection() { Orders = new List<Order>(); }
        [XmlElement("Order")]
        [NotMapped]
        public List<Order> Orders { get; set; }
    }
    [Serializable()]
    public class Order
    {
        public int id { get; set; }
        [XmlElement("date")]
        public DateTime createdDate
        {
            get
            {
                return (_createdDate == default(DateTime))
                   ? DateTime.Now
                   : _createdDate;
            }
            set { _createdDate = value; }
        }
        private DateTime _createdDate = default(DateTime);
        public string firstName { get; set; }
        public string lastName { get; set; }
        [XmlIgnore]
        public int orderStatusID { get; set; }
    }

dbcontext throwAmbiguousMatchException

是具有相同名称和不同大小写的两个成员的实体。一个是来自数据库的字段,另一个是导航属性。只要重命名其中一个就解决了问题。

相关文章:
  • 没有找到相关文章