我正在使用OrmLite中的ServiceStack构建API。
使用测试数据填充时,我收到以下错误:
INSERT语句与FOREIGN KEY约束冲突 “FK_Order_Customer_CustomerId”。冲突发生在数据库中 “C:\用户\ ALECTAYLOR \ SOCIALBOOTSTRAPAPI \ SRC \ SOCIALBOOTSTRAPAPI \ APP_DATA \ USERAUTH.MDF”, 表“dbo.Customer”,列'Id'。声明已经终止。
代码(第213-236行+ CreateOrders函数):http://pastebin.com/Njhz7sD2
Profiler输出:http://fiddle.jshell.net/cTen2/1/show/
感谢您就如何纠正此问题提出任何建议。
答案 0 :(得分:0)
FOREIGN KEY约束通常意味着您尝试将值插入到引用表中不存在的表中。请查看有关外键的MSDN文章,了解有关它们的含义及其工作原理的更多信息。您需要查看数据表订单和客户的实际结构。
我猜你正在将customerId插入到customers表中不存在的orders表中。
答案 1 :(得分:0)
因为这是插件失败,唯一合乎逻辑的解释是客户编号1不存在。我看到你之前插入了3行客户。也许在插入客户和插入订单之间没有提交交易。
INSERT INTO“Order”(“CustomerId”,“ShopId”,“ShippingAddress”, “OrderDate”,“RequiredDate”,“ShippedDate”,“Total”)VALUES(1,0, '{line1:440 Crescent St,line2:South Melbourne,postCode:7416, city:Melbourne,country:Australia}','20120430 07:43:18.686',NULL, NULL,0);
在插入客户端之后和插入订单之前尝试提交插入
答案 2 :(得分:0)