【发布时间】:2014-02-18 01:25:36
【问题描述】:
我编写了以下方法,试图扩展IQueryable<T> 以提供与我的自定义寻呼机控件集成的通用寻呼。但是,当我尝试在 IQueryable<Account> 上调用该方法时,我收到以下编译器错误:
BC30456: 'Page' 不是 'System.Linq.IQueryable(Of OrgName.ProjName.Account)'。
来源:
Imports System.Runtime.CompilerServices
Module Paging
<Extension()>
Public Function Page(Of T)(source As IQueryable(Of T), pageIndex As Integer, pageSize As Integer, ByRef recordCount As Integer) As IQueryable(Of T)
recordCount = source.Count()
Return source.Skip(pageIndex * pageSize).Take(pageSize)
End Function
End Module
模块文件与Account 业务对象(OrgName.ProjName) 位于相同的程序集和命名空间中。 (名称已更改以保护无辜者。)
我不确定以上内容与该问题中接受的答案有何不同(显然,语言除外): Transform LINQ IQueryable into a paged IQueryable using LINQ to NHibernate
知道我做错了什么吗?
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
可能是个愚蠢的问题,但您是否在使用它的类中引用了 Paging?
-
@DanDrews 据我所知,是的。它位于 ASP.NET 页面上。我可以在同一行代码中使用
Account,正如我所提到的,该模块与Account在同一个程序集中。我有一个对该程序集(一个类库项目)的项目引用,并将其命名空间导入到该 ASP.NET 网站项目的根 web.config 中。
标签: vb.net linq entity-framework extension-methods iqueryable