【发布时间】:2021-06-26 22:44:11
【问题描述】:
我尝试使用下面的代码将数据插入两个表,但它只插入一个表,第二个表的数据没有插入,它只是插入 Tstamp 列。我试图从 POSTMON POST 数据。
[HttpPost]
public async Task<IHttpActionResult> PostOrder(CustomerOrder customerOrder)
{
using (GeoContext context = new GeoContext())
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var order = context.CustomerOrders.Add(customerOrder);
context.CustomerOrders.Add(order);
order.Tstamp = DateTime.Now;
OrderProduct prod = new OrderProduct();
var product = context.OrderProducts.Add(prod);
context.OrderProducts.Add(product);
order.OrderID = product.OrderID;
product.Tstamp = DateTime.Now;
await context.SaveChangesAsync();
}
return Ok(new { Message = "Order placed" });
}
低于我尝试从 POSTMAN 插入的 JSON 值
{
"CustomerID":2,
"OrderNo":4,
"TotalPrice":50.00,
"Tstamp":"2021-03-31",
"Product":"Apple",
"Price":5,
"Quantity":10
}
客户订单类
public partial class CustomerOrder
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public CustomerOrder()
{
this.OrderProducts = new HashSet<OrderProduct>();
}
public int OrderID { get; set; }
public int CustomerID { get; set; }
public Nullable<int> OrderNo { get; set; }
public Nullable<double> TotalPrice { get; set; }
public Nullable<System.DateTime> Tstamp { get; set; }
public virtual Customer Customer { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<OrderProduct> OrderProducts { get; set; }
}
订单产品类
public partial class OrderProduct
{
public int OrderProductID { get; set; }
public int OrderID { get; set; }
public string Product { get; set; }
public Nullable<double> Price { get; set; }
public Nullable<int> Quantity { get; set; }
public Nullable<System.DateTime> Tstamp { get; set; }
public virtual CustomerOrder CustomerOrder { get; set; }
}
【问题讨论】:
-
你能展示一下 CustomerOrder 和 OrderProduct 类吗?
-
@Sergey 编辑问题。您现在可以查看
-
您从未设置过
prod属性?你有OrderProduct prod = new OrderProduct();但没有像prod.OrderID = ??; prod.Product="?? -
@RuiCaramalho 如何从 POSTMON 传递两个表中的数据?
-
@Sergey 给了你答案:)
标签: c# json asp.net-web-api postman