1

次のクエリを作成しようとしています。

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

同じ名前の2つの列にエイリアスがアタッチされているため、.And()が原因で、欠陥のあるクエリが生成されます。And演算子は次のとおりです。

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

この問題を解決できるものをGoogleで見つけることができませんでした。ArrGruppe.Tekstの有効なSQLパラメータを生成するSubsonicクエリを作成するにはどうすればよいですか?

編集:2.1Finalからバージョン2.2へのアップデートで問題が解決しました。

4

1 に答える 1

1
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で修正)

GoogleIssue31-式が修飾された列名で正しくフォーマットされない場合

于 2009-05-12T10:31:38.393 に答える