Asp.net core IQueryable不包含Count或OrderBy.的定义。。Can';我不明白为什么

Asp.net core IQueryable不包含Count或OrderBy.的定义。。Can';我不明白为什么,asp.net-core,datatables,Asp.net Core,Datatables,对C#、ASP.NET核心和web开发来说是全新的。我正在尝试实现一种通用方法,可以与JQuery DataGrid一起重用。方法如下: protected String ItemsToJson(IQueryable items, List<String> columnNames, String sort, String order, Int32 limit, Int32 offset) { try {

对C#、ASP.NET核心和web开发来说是全新的。我正在尝试实现一种通用方法,可以与JQuery DataGrid一起重用。方法如下:

protected String ItemsToJson(IQueryable items, List<String> columnNames, String sort, String order, Int32 limit, Int32 offset)
        {
            try
            {
                Int32 count = items.Count();
                String sortExpression = "";

                if (sort != null && sort.Length > 0)
                    sortExpression += String.Format("{0} {1}", sort, order);

                if (limit == 0)
                    limit = count;

                var result = new
                {
                    total = count,
                    rows = items.OrderBy(sortExpression).Skip(offset).Take(limit).Select("new (" + String.Join(",", columnNames) + ")")
                };

                return JsonConvert.SerializeObject(result, Formatting.None, new JsonSerializerSettings() { MetadataPropertyHandling = MetadataPropertyHandling.Ignore });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return null;
            }
        }
protectedstringitemstojson(IQueryable项、列表列名、字符串排序、字符串顺序、Int32限制、Int32偏移量)
{
尝试
{
Int32 count=items.count();
字符串sortExpression=“”;
if(sort!=null&&sort.Length>0)
sortExpression+=String.Format(“{0}{1}”,排序,顺序);
如果(限制==0)
限制=计数;
var结果=新
{
总数=计数,
rows=items.OrderBy(sortExpression)。Skip(offset)。Take(limit)。选择(“new”(“+String.Join”(“,”,columnNames)+”)
};
返回JsonConvert.SerializeObject(结果,格式化.None,新的JsonSerializerSettings(){MetadataPropertyHandling=MetadataPropertyHandling.Ignore});
}
捕获(例外情况除外)
{
控制台写入线(例如消息);
返回null;
}
}
读取Int32 count=items.count()的行;返回以下错误:

“IQueryable”不包含“Count”的定义,并且找不到接受类型为“IQueryable”的第一个参数的可访问扩展方法“Count”(是否缺少using指令或程序集引用?)

读取行=Items.OrderBy(sortExpression)的行。。。。。返回以下错误:

“IQueryable”不包含“OrderBy”的定义,并且找不到接受类型为“IQueryable”的第一个参数的可访问扩展方法“Count”(是否缺少using指令或程序集引用?)

我有一个用于System.Linq的程序。有什么想法吗?这快把我逼疯了

谢谢你


---Val

IQueryable项目提供的项目类型是什么

Count方法可用于
IQueryable
,这意味着如果您将传入参数更改为
IQueryable items
,您应该能够访问它

IQueryable
接口旨在通过查询实现 提供者。它只应该由 同时实现
IQueryable
。如果提供程序未同时实现
IQueryable
,标准查询运算符不能用于 提供程序的数据源


我认为您需要向我们提供调用此方法的代码。如果要获取集合的计数,需要将IQueryable具体化为某个类的集合
IQueryable
。您好,这不是运行时错误。由于这两个错误,我无法编译代码。嗨,亚当。由于这两个错误,代码无法编译。这不是运行时错误。是的,这正是我所指的。如果更新方法的参数以引用列出T的特定类型的IQueryable,则可查询的方法应该可用:
protectedstring ItemsToJson(IQueryable items,
明白了!谢谢大家。