У меня есть следующие таблицы в базе данных:Использование ServiceStack OrmLite для удаления строк с условием в другой таблице
Table C Table B Table A
------- ------- -------
Id Id Id
BId AId
Колонка BID является внешним ключом к TableB. AId является внешним ключом для TableA. Я хочу удалить все строки из таблицы C, которые подключены к строке в таблице. Следующий SQL (используется в SQL Management Studio) делает трюк:
DELETE [ns].[TableC]
FROM [ns].[TableC] c
JOIN [ns].[TableB] b ON c.[BId] = b.[Id]
WHERE b.[AId] = 530
GO
Я попытался, используя следующий код:
var query = connection.From<TableC>()
.Join<TableC, TableB>((c, b) => c.BId == b.Id)
.Where<TableB>(b => b.AId == 530);
connection.Delete<TableC>(query);
Но это приводит к исключению и от вызова GetLastSql() я получаю:
DELETE FROM "ns"."TableC" WHERE ("ns"."TableB"."AId" = @0)
Как я могу использовать ServiceStack OrmLite для выполнения этого удаления?
спасибо. Эти NuGets решили проблему. –
Один вопрос, однако, это версии NuGets on MyGet или они являются бета-версиями? –
@MartinA Это лишь промежуточные предварительные пакеты, которые мы развертываем между нашими официальными релизами, которые публикуются на NuGet. – mythz