query apelido Subsonic - como?
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.
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