Дозвуковой запрос псевдонима - как? - PullRequest
1 голос
/ 12 мая 2009

Я пытаюсь построить следующий запрос:

`new Select("GTekst = ArrGruppe.Tekst", "GLTekst = ArrGruppeLinie.Tekst")
.From(ArrGruppeLinie.Schema)
.InnerJoin(ArrGruppe.IdColumn, ArrGruppeLinie.ArrGruppeIDColumn)
.Where(ArrDeltager.Columns.Kategori).IsLessThan(20)
.And("Arrgruppe.Tekst").Like("mytext");`

Он генерирует некорректный запрос из-за .And (), потому что у меня есть псевдонимы, прикрепленные к двум столбцам с одинаковым именем - оператор And здесь:

... AND (ArrGruppe.Tekst LIKE @ArrGruppe.Tekst1
)',N'@Kategori0 tinyint,@ArrGruppe.Tekst1 varchar(10)',@Kategori0=20,@ArrGruppe.Tekst1='mytext'

Мне не удалось найти в Google ничего, что могло бы решить эту проблему. Как мне написать дозвуковой запрос, чтобы сгенерировать допустимый параметр SQL для ArrGruppe.Tekst ??

РЕДАКТИРОВАТЬ: проблема была решена с обновлением с 2.1 Final до версии 2.2.

1 Ответ

1 голос
/ 12 мая 2009
new Select("GTekst = ArrGruppe.Tekst", "GLTekst = ArrGruppeLinie.Tekst")
  .From(ArrGruppeLinie.Schema)
  .InnerJoin(ArrGruppe.Columns.Id, ArrGruppeLinie.Columns.ArrGruppeID)
  .Where(ArrDeltager.Columns.Kategori).IsLessThan(20)
  .And(Arrgruppe.Columns.Tekst).Like("mytext");

Если не попробовать обновить до последней версии SubSonic http://code.google.com/p/subsonicproject/downloads/list, потому что вы можете решить следующую проблему (исправлена ​​в 2.2)

Google Issue 31 - Неверное форматирование выражения с указанным именем столбца

...