我只想从 LINQ 查询中返回一些列。我怎么做?这是asp.net:
<asp:EntityDataSource ID="RequestorDataEntitySource" runat="server"
ConnectionString="name=RequestDataEntities"
DefaultContainerName="RequestDataEntities" EnableFlattening="False"
EntitySetName="requests"
OnQueryCreated="Requestor_QueryCreated" >
</asp:EntityDataSource>
<asp:GridView ID="RequestorGridView" runat="server"
DataSourceID="RequestorDataEntitySource">
</asp:GridView>
以及背后的代码:
protected void Requestor_QueryCreated(object sender, QueryCreatedEventArgs e)
{
var currentRequestor = e.Query.Cast<requests>();
e.Query = (from rq in currentRequestor
where rq.lname == "Somebody"
select rq);
}
这用所有 20 列填满了网格,但我可以只选择几个特定的列(fname、lname、email)吗?我在这里看到了很多关于这个主题的帖子,但我无法让这些示例对我有用。如果我尝试将选择更改为:
select new { rq.fname, rq.lname });
我收到一个错误:
System.InvalidOperationException:QueryCreated 事件返回了“ObjectQuery
1' when type 'ObjectQuery
1”类型的查询是必需的。
我遗漏了一些东西,请赐教。