Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用FluentMigrator基于where子句删除多行_C#_Delete Row_Fluent Migrator - Fatal编程技术网

C# 使用FluentMigrator基于where子句删除多行

C# 使用FluentMigrator基于where子句删除多行,c#,delete-row,fluent-migrator,C#,Delete Row,Fluent Migrator,给定一个PaymentStatus表、一个PaymentStatus表和一个PaymentHistory表,我需要从PaymentStatus表中删除PaymentStatus表和PaymentHistory表具有关联记录的状态。当然,这意味着在付款表之前删除历史记录表。当然,历史数据有多个不同状态的付款记录。我需要的是历史记录表delete的where子句。。。sql看起来有点像这样: DELETE FROM PaymentHistory WHERE PaymentId IN (SELEC

给定一个PaymentStatus表、一个PaymentStatus表和一个PaymentHistory表,我需要从PaymentStatus表中删除PaymentStatus表和PaymentHistory表具有关联记录的状态。当然,这意味着在付款表之前删除历史记录表。当然,历史数据有多个不同状态的付款记录。我需要的是历史记录表delete的where子句。。。sql看起来有点像这样:

DELETE FROM PaymentHistory 
WHERE PaymentId IN 
(SELECT Id FROM Payment WHERE PaymentStatusCode = 'Processing')
我不明白的是如何在FluentMigrator中实现这一点。这是我到目前为止所拥有的,但是在.FromTable()之后没有.Where()或其他扩展方法可用


提前谢谢你的帮助。

现在我觉得问这个问题很愚蠢

const string cascadeDeleteScript = 
@"DELETE FROM PaymentHistory WHERE PaymentId IN 
              (SELECT Id FROM Payment WHERE PaymentStatusCode = 'Processing') ";
Execute.Sql(cascadeDeleteScript);

将表设置为级联删除如何

看起来您必须删除主外键约束,并在考虑级联的情况下重新创建它,但无论何时从PaymentHistory中删除,您都将从PaymentHistory中删除

const string cascadeDeleteScript = 
@"DELETE FROM PaymentHistory WHERE PaymentId IN 
              (SELECT Id FROM Payment WHERE PaymentStatusCode = 'Processing') ";
Execute.Sql(cascadeDeleteScript);