У меня возникли проблемы с преобразованием того, что представляет собой несколько простой запрос в динамический запрос LLBLGen Pro. Мне нужно преобразовать что-то вроде следующего SQL (но я буду проездом в значениях для региона, то идентификатор для проверки и требуемые имен):Преобразование SQL с предложением «HAVING» в LLBLGen Pro DynamicQuery
SELECT Parent.Id
FROM Parent INNER JOIN Child
ON Child.ParentId = Parent.Id
WHERE Parent.Region = '1'
AND Parent.Id IN (1, 2, 3, 4, 5)
GROUP BY
Parent.Id
HAVING SUM(CASE WHEN child.Name IN ('Required1', 'Required2', 'Required3') THEN 1 ELSE 0 END) != 3
Но я с трудом преобразуя Имея в эквивалент LLBL.
Это то, что я до сих пор:
var q = qf.Create()
.From(qf.ParentView
.InnerJoin(qf.ChildView)
.On(ChildViewFields.Id == ParentViewFields.ParentId))
.Where((ParentViewFields.Region == _region)
.And(ParentViewFields.Id.In(_checkIds)))
.Select(() => ParentViewFields.Id.ToValue<string>())
.GroupBy(ParentViewFields.Id)
.Having(???)
Любая помощь будет принята с благодарностью. Я открыт для альтернативных предложений о том, как выполнить то, что делает SQL (остерегайтесь того, что он должен запускаться в базе данных и не сбивать клиента для дальнейших вычислений).
Просто используйте другое предложение 'Where'. –
Можете ли вы расширить это? Я не изначально для SQL-парня. – SergioL