.net 亚音速。使用Group By的列名称不明确
我将亚音速2.2与.NET2.0一起使用,当我包含“分组依据”时,出现了一个错误 最初我有这个代码,它工作得很好:.net 亚音速。使用Group By的列名称不明确,.net,subsonic,.net,Subsonic,我将亚音速2.2与.NET2.0一起使用,当我包含“分组依据”时,出现了一个错误 最初我有这个代码,它工作得很好: SqlQuery etResourceTitle = new Select(ResTitleOngoing.Columns.ResourceTitleID, ResTitleOngoing.Columns.ResourceTitle,
SqlQuery etResourceTitle = new Select(ResTitleOngoing.Columns.ResourceTitleID,
ResTitleOngoing.Columns.ResourceTitle,
VenVendor.Columns.Title,
ResTitleOngoingStatus.Columns.Status).From(Tables.ResTitleOngoing);
etResourceTitle.InnerJoin(ResTitleOngoingStatus.ResourceTitleIDColumn, ResTitleOngoing.ResourceTitleIDColumn);
etResourceTitle.LeftOuterJoin(VenVendor.VendorIDColumn, ResTitleOngoing.VendorIDColumn);
etResourceTitle.OrderAsc(ResTitleOngoing.Columns.ResourceTitle);
etResourceTitle.ExecuteDataSet();
然后我添加了“分组依据”,这是我的代码:
SqlQuery etResourceTitle = new Select(Aggregate.GroupBy(ResTitleOngoing.Columns.ResourceTitleID),
Aggregate.GroupBy(ResTitleOngoing.Columns.ResourceTitle),
Aggregate.GroupBy(VenVendor.Columns.Title),
Aggregate.GroupBy(ResTitleOngoingStatus.Columns.Status)).From(Tables.ResTitleOngoing);
etResourceTitle.InnerJoin(ResTitleOngoingStatus.ResourceTitleIDColumn, ResTitleOngoing.ResourceTitleIDColumn);
etResourceTitle.LeftOuterJoin(VenVendor.VendorIDColumn, ResTitleOngoing.VendorIDColumn);
etResourceTitle.OrderAsc(ResTitleOngoing.Columns.ResourceTitle);
etResourceTitle.ExecuteDataSet();
我得到了错误:“不明确的列名'ResourceTitleID'。”
执行etResourceTitle.BuildSqlStatement();我得到:
选择ResourceTitleID作为“GroupByOfResourceTitleID”,
ResourceTitle作为“GroupByOfResourceTitle”,
标题为“GroupByOfTitle”,
状态为“GroupByOfStatus”
来自[dbo]。[RES_titleongo]
[dbo].[RES\u TitleOngoingStatus]上的内部联接[dbo].[RES\u TitleOngoingStatus]。[ResourceTitleID]=[dbo].[RES\u TitleOngoingStatus].[ResourceTitleID]
[dbo].[RES_TitleOngoing].[VendorID]=[dbo].[VEN_Vendor].[VendorID]上的左外部联接[dbo].[VEN_Vendor]
按ResourceTitleID、ResourceTitle、Title、Status分组
按资源名称排序ASC
所以,有人可以帮我解决这个错误
谢谢
Alan您的表RES_TitleOngoing和RES_TitleOngoingStatus都包含一个名为ResourceTitleID的列,但您在分组中按部分指定了ResourceTitleID,因此sql server不知道要分组哪个ResourceTitleID 注: 只返回字符串“ResourceTitleID” 您应该尝试以下方法之一:
Aggregate.GroupBy(ResTitleOngoing.ResourceTitleIDColumn)
Aggregate.GroupBy(ResTitleOngoing.Schema.QualifiedName + "."
+ ResTitleOngoing.Columns.ResourceTitleID)
谢谢Schlaviener。这解决了我的问题。我使用了Aggregate.GroupBy(restitleonging.ResourceTitleIDColumn)Alan
Aggregate.GroupBy(ResTitleOngoing.ResourceTitleIDColumn)
Aggregate.GroupBy(ResTitleOngoing.Schema.QualifiedName + "."
+ ResTitleOngoing.Columns.ResourceTitleID)