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

由于 .And() 它会生成一个有缺陷的查询,因为我在具有相同名称的两列上附加了别名 - And 运算符在这里:

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

我在谷歌上找不到任何可以解决这个问题的东西。如何编写 Subsonic 查询来为 ArrGruppe.Tekst 生成有效的 SQL 参数?

编辑:从 2.1 Final 到 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 中修复)

Google 问题 31 - 使用限定列名的表达式格式不正确

于 2009-05-12T10:31:38.393 回答