通过邮递员将更新模型发送到MongoDB模型

时间:2016-09-18 08:55:07

标签: asp.net-web-api asp.net-web-api2 mongodb-.net-driver

public class BaseEntity
    {
        [BsonId]
        [BsonRepresentation(BsonType.ObjectId)]
        public ObjectId Id { get; set; }
    }

public class Order : BaseEntity
    {
        public string OrderId { get; set; }
        public int CustomerId { get; set; }
        public Payment Payment { get; set; }
        public OrderStatus OrderStatus { get; set; }
        public ShippingAddress ShippingAddress { get; set; }
        public BillingAddress BillingAddress { get; set; }

        [BsonRepresentation(BsonType.Double)]
        public decimal Discount { get; set; }
        //public BsonDateTime OrderDate { get; set; }
    }

// PUT api/values/5
        [HttpPut("{id}")]
        public async Task<IActionResult> Put(string id, [FromBody]Order Order)
        {
            if (!ModelState.IsValid)
                return BadRequest(ModelState);
            await OrderContext.Put<Order>(x => x.OrderId == id, Order);
            return Ok(Order);
        }

enter image description here

这是我的请求正文。但是我将Order模型设为null。我不知道为什么。

我有一个继承自 BaseEntity 的模型订单。我试图从邮递员传递PUT请求的模型。但我收到 Order 模型为null。

然而有趣的是,如果我从请求正文中删除id属性,我会将所有模型填充为请求正文,但基本实体中的id字段除外。在第二种情况下,我收到了00000000000000的id属性。

0 个答案:

没有答案