Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与IQueryable合作;不起作用_C#_Linq - Fatal编程技术网

C# 与IQueryable合作;不起作用

C# 与IQueryable合作;不起作用,c#,linq,C#,Linq,我正在使用linq到EF,我有: public IQeuryable<base01> GetData() { var u = this.ObjectContext.base01; IQueryable<base01> u2 = u.OrderBy(o => o.article) .Select(l => new { Id = l.Id, article = l.article, lot = l.lot}) as IQuery

我正在使用linq到EF,我有:

public IQeuryable<base01> GetData()
{
   var u = this.ObjectContext.base01;

   IQueryable<base01> u2 = u.OrderBy(o => o.article)
           .Select(l => new { Id = l.Id, article = l.article, lot = l.lot}) as IQueryable<base01>;

   return u2;
}
public IQeuryable GetData()
{
var u=this.ObjectContext.base01;
IQueryable u2=u.OrderBy(o=>o.article)
。选择(l=>new{Id=l.Id,article=l.article,lot=l.lot})作为IQueryable;
返回u2;
}
基本上,u包含查询结果,我希望对列进行排序和重新排列。当我用return u替换return u2时,我得到的是结果集填充的内容,但当我选择return u2时,我得到的是null

我没有看到的问题是什么

谢谢

as IQueryable<base01>
编辑:

如果
u
已经是
IQueryable
并且
base01
是您的实体之一,您根本不需要
Select()
投影,因为您已经拥有了所需的类型:

IQueryable u2=u.OrderBy(o=>o.article);
返回u2;

您不能以这种方式强制转换,请使用下面的代码

IQueryable<base01> u2 = u.OrderBy(o => o.article) 
       .Select(l => new base01 { Id = l.Id, article = l.article, lot = l.lot});
IQueryable u2=u.OrderBy(o=>o.article)
.Select(l=>newbase01{Id=l.Id,article=l.article,lot=l.lot});

如果我删除了末尾的as IQueryable语句,它会出现红色错误,那么现在有什么问题?它会显示什么错误?我不是通灵者;-)什么类型是
base01
?最好显示定义OK,初始错误已修复:我添加了新的base01()语句。现在,当我点击扩展链接“实体或复杂类型”base01Model.base01“不能在LINQ到实体查询中构造”时,我得到了一个错误的空结果。@frenchie:更新的答案:你根本不需要
Select()
。问题是我需要排序并更改列顺序;这就是为什么我要选择属性,以更改IQueryable中列的顺序。好的,这就是修复方法。现在,当我单击展开链接“实体或复杂类型”base01Model.base01“无法在LINQ到实体查询中构造”时,我得到了一个空结果,错误是我添加了新的base01()语句。现在,当我单击展开链接“实体或复杂类型”base01Model.base01“无法在LINQ to Entities查询中构造”时,我得到一个空结果,并显示错误
IQueryable<base01> u2 = u.OrderBy(o => o.article);
return u2;
IQueryable<base01> u2 = u.OrderBy(o => o.article) 
       .Select(l => new base01 { Id = l.Id, article = l.article, lot = l.lot});