Я задал следующий вопрос на дозвуковом форуме, но, похоже, получил только один ответ, так что я подумал, что я должен также опубликовать здесь, чтобы посмотреть, сможет ли кто-нибудь еще пролить свет на проблему ...
Я хочу создать следующую инструкцию SQL через SubSonic, используя инструмент Select (или инструмент Query) .. он использует пользовательскую функцию под названием "SPLIT ()":
ВЫБРАТЬ * ИЗ VwPropertyList
ГДЕ VwPropertyList.idCreatedBy = 123
AND VwPropertyList.idCounty = 45
И 29 В (ВЫБРАТЬ элемент ИЗ РАЗДЕЛЕНИЯ (DistrictGroupList, ','))
(последняя часть этого SQL использует функцию SPLIT)
Мой дозвуковой эквивалент выглядит следующим образом ...
Dim mySelect As New SubSonic. Выберите
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
& ", ',')"))
Это не работает, хотя из-за последней части ... как я могу добавить " И 29 IN (ВЫБРАТЬ элемент из SPLIT (DistrictGroupList, ',')) " в мой Subsonic.Select?
В ответе, который я получил от дозвукового форума, было предложено покончить с Subsonic.Select и заменить его жестко закодированными операторами InlineQuery () .. например:
Dim SQL as String = "Выбрать" &
VwPropertyList.Columns.Item
SQL = SQL
& " От " &
VwPropertyList.Schema.TableName
SQL =
SQL & "Где" &
VwPropertyList.Columns.IdCreatedBy & "
= @CreatedBy "
SQL = SQL &" And "& VwPropertyList.Columns.IdCounty &" =
@County "
SQL = SQL &" And
@DistrictGroup IN (Выбрать элемент из
SPLIT (DistrictGroupList, ',') "
предметов =
SubSonic.InlineQuery (). ExecuteTypedList (Из
MyItem) (SQL, 123,45,29)
Я бы предпочел использовать SubSonic.Выберите, если возможно, хотя бы так, чтобы я мог использовать функциональность подкачки и т. Д.
Есть идеи?