Pergunta

Eu estou tentando construir a consulta a seguir:

`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");`

Ele gera uma consulta falho por causa da .E () porque eu tenho aliases ligados nas duas colunas com o mesmo nome - o E-operador está aqui:

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

Eu não tenho sido capaz de encontrar qualquer coisa no Google que poderia resolver este problema. Como faço para escrever a consulta Subsonic para gerar um parâmetro SQL válido para ArrGruppe.Tekst ??

EDIT: Problema foi resolvido com uma atualização de 2,1 final para a versão 2.2.

Foi útil?

Solução

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");

Se não tentar fazer o upgrade para a versão mais recente do SubSonic http://code.google .com / p / subsonicproject / download lista / porque você pode estar batendo o seguinte problema (fixo em 2.2)

O Google Issue 31 - onde a expressão não formatação corretamente com nome de coluna qualificado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top