我知道这会出现很多,但我想知道如何获取我要删除的实体列表对成功与否有任何影响。
在下面的代码中,我收到一个错误抱怨FK约束冲突 在这种情况下,表PaymentInvoice作为对WarehouseStatementBatchPayment的FK引用,而VaultStatementBatchPayment又具有对WarehouseStatementBatch的FK引用。所以我应该能够从子表中删除记录(在本例中为PaymentInvoice)。我可以理解我是否从其他表中删除,因为PaymentInvoice中的记录仍然会引用我正在删除的那些。在这种情况下不是这样吗?
由于我通过加入另外两个来获取PaymentInvoice记录列表,这是否会影响我删除它们的能力?
var PaymentInvoiceList = (from b0 in ctx.PaymentInvoices
join c0 in ctx.WarehouseStatementBatchPayments on b0.WarehouseStatementBatchPaymentID equals c0.ID
join d0 in ctx.WarehouseStatementBatches on c0.WarehouseStatementBatchID equals d0.ID
where d0.ID == b0.ID
select b0)
.ToList();
ctx.PaymentInvoices.RemoveRange(PaymentInvoiceList);
我得到的错误: DELETE语句与REFERENCE约束冲突\“FK_PaymentInvoice_WarehouseStatementBatchPayment \”
FK存在于PaymentInvoice表中。
此外,我检查了PaymentInvoice表中的任何其他可能的依赖项,并且没有(除了一些视图和存储过程)。一些存储过程已经作为函数导入被引入到数据模型中,但这并不是直接关注的,因为错误消息只是抱怨FK约束。
我还应该检查什么?