1

我正在使用来自ServiceStack的OrmLite构建一个 API 。


当用测试数据填充它时,我收到以下错误:

INSERT 语句与 FOREIGN KEY 约束“FK_Order_Customer_CustomerId”冲突。冲突发生在数据库“C:\USERS\ALECTAYLOR\SOCIALBOOTSTRAPAPI\SRC\SOCIALBOOTSTRAPAPI\APP_DATA\USERAUTH.MDF”、表“dbo.Customer”、“Id”列中。该语句已终止。

代码(第 213-236 行 + CreateOrders 函数):http ://pastebin.com/Njhz7sD2

探查器输出: http: //fiddle.jshell.net/cTen2/1/show/


感谢您提供有关如何纠正此问题的任何建议。

4

3 回答 3

0

好吧,让它工作。

需要设置ShopIdofOrderorderIdof orderDetails List

http://pastebin.com/TbrW150T

于 2012-05-01T00:07:06.093 回答
0

由于这是失败的插入,唯一合乎逻辑的解释是客户编号 1 不存在。我看到您在几行之前插入了 3 个客户。也许在插入客户和插入订单之间没有提交事务。

插入“订单”(“CustomerId”、“ShopId”、“ShippingAddress”、“OrderDate”、“RequiredDate”、“ShippedDate”、“Total”)值(1、0、'{line1:440 Crescent St, line2: South Melbourne, postCode:7416, city:Melbourne, country:Australia}', '20120430 07:43:18.686', NULL, NULL, 0);

在插入客户之后和插入订单之前尝试提交插入

于 2012-04-30T09:16:35.653 回答
0

FOREIGN KEY 约束通常意味着您试图将值插入到引用表中不存在的表中。查看有关外键的MSDN文章,了解有关它们是什么以及它们如何工作的更多信息。您需要查看数据表 order 和 customer 的实际结构。

我猜您正在将 customerId 插入到客户表中不存在的订单表中。

于 2012-04-30T03:41:20.943 回答