ShoppingCartController如果不按照此方式进行显式赋值处理,则SaveAsync无法给数据库LineItems表中的OrderId列赋值,这也导致了返回订单信息中并不包含商品信息,为什么我需要这样处理才能跟您视频中返回的结果一致?(下面两图是有可能相关的代码)
不能使用 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使用的是同一引用,导致此问题的出现
. Net Core实战+RESTful思想纵深课程,开发优雅RESTful风格API。
了解课程