还有其他类似的问题(我见过至少 2 个),但我无法使用它们解决这个问题。
现在的问题是:我有 3 个表,我只需要从中选择 4 列。我正在使用 InnerJoin,它运行良好。当我向此选择添加位置时,问题就开始了。我在两个表中有一个名为“名称”的列。如果我简单地添加
.Where("Name").Like("A%")
它说“......列名不明确......”
如果我使用完全限定的列名(表前缀为列名)它说必须声明参数@TABLE_NAME
SqlQuery sq = new Select(Tables.TableOne + "." + TableOne.Columns.MemberId +
" AS MemberId",
Tables.TableTwo + "." + TableTwo.Columns.Name + " AS MemberName",
Tables.TableOne + "." + TableOne.Columns.ExpiryOn + " AS MembershipExpiresOn",
Tables.TableFour + "." + TableFour.Columns.Name + " AS Country")
.From(DAL.Tables.TableOne)
.InnerJoin(Tables.TableTwo)
.InnerJoin(Tables.TableThree)
.InnerJoin(Tables.TableFour, TableFour.Columns.CountryCode,
Tables.TableThree, TableThree.Columns.CountryOfBirth).
sq.Where(Tables.TableTwo + "." + TableTwo.Columns.Name).Like("A%");
我也尝试过传递硬编码的字符串,但没有任何效果!