Я пытаюсь построить следующий запрос:Дозвуковой запрос псевдонима - как?
`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 (ArrGruppe.Tekst LIKE @ArrGruppe.Tekst1
)',N'@Kategori0 tinyint,@ArrGruppe.Tekst1 varchar(10)',@Kategori0=20,@ArrGruppe.Tekst1='mytext'
Я ничего не смог найти в Google, который мог бы решить эту проблему. Как написать Subsonic-запрос для создания допустимого параметра SQL для ArrGruppe.Tekst ??
EDIT: проблема была решена с помощью обновления от версии 2.1 Final до версии 2.2.
У меня есть ситуация, когда у меня есть две таблицы с соответствующими именами столбцов «ArrGruppe.Tekst» и «ArrGruppeLinie.Tekst». Возникает вопрос: как написать SubSonic-запрос, в котором я генерирую псевдонимы для имен столбцов, чтобы сделать некоторый действительный SQL - и в том же запросе создать AND-фильтр на основе одного из столбцов, для которого я только что создал псевдоним? Я попробовал ваш подход - выше генерирует следующее: И Tekst LIKE @ Tekst1 ... который является недействительным, поскольку Tekst неоднозначный колонка, потому что есть два из них. Пожалуйста, напишите снова, если вам нужна дополнительная информация: o) – kerbou
Я отредактировал запрос выше, чтобы он исправил ошибку неоднозначного имени столбца. Дайте мне знать, если это не –
Извините. Он генерирует следующее AND-предложение: ... И ArrGruppe.Tekst LIKE @ ArrGruppe.Tekst1 , что является недопустимым, поскольку вы не можете иметь точку в имени параметра. – kerbou