返回“匿名”类型

本文介绍如何在ASP.NET中使用LINQ查询数据库并返回匿名类,通过实例展示了如何实现联表查询和数据绑定,同时提供了一种不创建新实体类的方式来处理返回结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table border="1" align="center">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# Eval("CustomerID")%>
</td>
<td>
<%# Eval("Country") %>
</td>
<td>
<%# Eval("Count") %>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table></FooterTemplate>
</asp:Repeater>

  上面所写的是用的Repeater绑定后所显示的简单页面显示,数据库选择的是NorthWind里的customers和orders表,使用vs工具自动生成linq to sql实体类,可以看到只在前台显示了3条数据库记录。

  现在写后台代码,其实原本打算这里是用来做测试的,希望可以用不创建新实体类的方式,来返回联表查询时,创建的匿名类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data.Linq;
using System.Data.Linq.SqlClient;

namespace LinqLoadWithDemo
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var list = ReturnTest();
//GridView1.DataSource = list;
//GridView1.DataBind();
Repeater1.DataSource = list;
Repeater1.DataBind();
}

protected IQueryable ReturnTest()
{
DataClasses1DataContext dc = new DataClasses1DataContext();
var cus = dc.GetTable<Customers>();
var ord = dc.GetTable<Orders>();
var list = cus.GroupJoin(ord, c => c.CustomerID, o => o.CustomerID, (o, c)=>new {CustomerID=o.CustomerID,Country=o.Country,Count=c.Count()});
return (IQueryable)list;
}
}
}

  本人水平所限,所以只能测试了这一点东西,可以看到,原本匿名的list,只要在返回前转换成IQueryable接口类型的,就可以在其他函数里调用这个返回的结果了。

  当然了,这里用来直接绑定Repeater控件是可以如此使用的,并且此方式严格来说并不是返回匿名类型,只是返回了实现了继承IQueryable接口的类型,不过对于不需要另行创建实体类的方式来说,可能会方便一些,当然了效率和其他一些因素,这里并没有考虑,只是提供了一种方式。

转载于:https://www.cnblogs.com/green-4984/archive/2011/09/22/2184573.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值