Я задал следующий вопрос на форуме по дозвуковой технологии, но, похоже, получил только один ответ, поэтому я подумал, что я тоже отправлю здесь, чтобы посмотреть, сможет ли кто-нибудь пролить еще немного света на проблему ...
Я хочу создать следующий оператор SQL через SubSonic, используя инструмент Select (или инструмент запроса) .. он использует специальную функцию под названием «SPLIT ()»:
ВЫБРАТЬ * ИЗ VwPropertyList
ГДЕ VwPropertyList.idCreatedBy = 123
И VwPropertyList.idCounty = 45
И 29 В (ВЫБРАТЬ элемент ИЗ СПЛИТА (DistrictGroupList, ',')) strong >
(последняя часть этого SQL использует функцию SPLIT)
Мой дозвуковой эквивалент выглядит следующим образом ...
Затемнить mySelect как новый SubSonic.Select
mySelect.From (VwPropertyList.Schema)
mySelect.Where (VwPropertyList.Columns.IdCreatedBy) .IsEqualTo (123)
mySelect.And (VwPropertyList.Columns. IdCounty) .IsEqualTo (45)
mySelect.And (29) .In (New SubSonic.Select ("Item"). From ("SPLIT (" & VwPropertyList.Columns.DistrictGroupList & ", ', ') "))
Это не работает из-за последней части ... как я могу добавить "AND 29 IN (SELECT Item FROM SPLIT (DistrictGroupList, ','))" в мой Subsonic.Select?
В ответе, который я получил от форума по дозвуковым технологиям, предлагалось отказаться от Subsonic.Select и заменить их жестко запрограммированными операторами InlineQuery () ... например:
Уменьшить размер SQL как String = "Select" & VwPropertyList.Columns.Item
SQL = SQL & "From" & VwPropertyList.Schema.TableName
SQL = SQL & "Where" & VwPropertyList.Columns.IdCreatedBy & " = @CreatedBy "
SQL = SQL &" And "& VwPropertyList.Columns.IdCounty &" = @County "
SQL = SQL &" And @DistrictGroup IN (Выбрать элемент из SPLIT (DistrictGroupList, ', ') "Items = SubSonic.InlineQuery (). ExecuteTypedList (Of MyItem) (SQL, 123,45,29)
Я бы предпочел использовать SubSonic.Select, если это возможно, чтобы я мог воспользоваться функциями разбиения по страницам и т. Д.
Любые идеи?