C# 与IQueryable合作;不起作用
我正在使用linq到EF,我有: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
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});