请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

下单结算中购物车ShoppingCartItems不显式赋值OrderId,SaveAsync无法更新LineItems的OrderId列赋值,请问是什么原因?

图片描述
ShoppingCartController如果不按照此方式进行显式赋值处理,则SaveAsync无法给数据库LineItems表中的OrderId列赋值,这也导致了返回订单信息中并不包含商品信息,为什么我需要这样处理才能跟您视频中返回的结果一致?(下面两图是有可能相关的代码)
图片描述
图片描述

问题已解决

根据输出SQL分析发现

不能使用 shoppingCart.ShoppingCartItems.Clear(); //输出SQL UPDATE [LineItems] SET [ShoppingCartId] = @p0
需要使用 shoppingCart.ShoppingCartItems = null; //输出SQL UPDATE [LineItems] SET [OrderId] = @p0, [ShoppingCartId] = @p1
是由于=NULL方式是把地址置为NULL,List.Clear()方式清空引用下的值,order与shoppingCart的LineItem使用的是同一引用,导致此问题的出现

正在回答

1回答

学习了,感谢分享。问题置顶

1 回复 有任何疑惑可以回复我~
  • 提问者 孔令瑞 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2023-01-11 17:34:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信