Ich habe die folgenden Tabellen in der Datenbank zu löschen:ServiceStack OrmLite Mit Zeilen mit Bedingung in anderer Tabelle
Table C Table B Table A
------- ------- -------
Id Id Id
BId AId
die Bid-Spalte ist ein Fremdschlüssel zu TableB. AId ist ein Fremdschlüssel für TableA. Ich möchte alle Zeilen aus der Tabelle C löschen, die mit einer Zeile in TableA verbunden ist. Die folgende SQL (verwendet in SQL Management Studio) funktioniert der Trick:
DELETE [ns].[TableC]
FROM [ns].[TableC] c
JOIN [ns].[TableB] b ON c.[BId] = b.[Id]
WHERE b.[AId] = 530
GO
ich den folgenden Code versucht, mit:
var query = connection.From<TableC>()
.Join<TableC, TableB>((c, b) => c.BId == b.Id)
.Where<TableB>(b => b.AId == 530);
connection.Delete<TableC>(query);
Aber dies führt zu einer Ausnahme und von Aufrufen GetLastSql() erhalte ich:
DELETE FROM "ns"."TableC" WHERE ("ns"."TableB"."AId" = @0)
Wie kann ich ServiceStack Ormlite verwenden, um dieses Löschen durchzuführen?
Vielen Dank. Diese NuGets haben das Problem gelöst. –
Eine Frage, sind NuGets auf MyGet Release-Versionen oder sind sie Beta/RC-Versionen? –
@MartinA Es handelt sich lediglich um vorläufige Pre-Release-Pakete, die wir zwischen unseren offiziellen Veröffentlichungen veröffentlichen, die auf NuGet veröffentlicht werden. – mythz