#c# #sql #sql-server #servicestack #ormlite-servicestack
#c# #sql #sql-сервер #servicestack #ormlite-servicestack
Вопрос:
У меня есть следующие таблицы в базе данных:
Table C Table B Table A
------- ------- -------
Id Id Id
BId AId
Столбец BId является внешним ключом к TableB. AId — это внешний ключ к TableA. Я хочу удалить все строки из таблицы C, которые связаны со строкой в TableA. Следующий 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 для выполнения этого удаления?
Ответ №1:
Поддержка объединения ТАБЛИЦ УДАЛЕНИЯ была недавно добавлена в ORMLite и доступна с версии 4.5.1, которая теперь доступна на MyGet.
Комментарии:
1. Один вопрос, однако, являются ли NuGets в MyGet release-версиями или они бета / RC-версии?
2. @MartinA Это всего лишь промежуточные пакеты предварительного выпуска, которые мы развертываем между нашими официальными выпусками, которые публикуются на NuGet.