在向大家详细介绍LINQ编程模型之前,首先让大家了解下什么是LINQ?,然后全面介绍LINQ编程模型。
什么是LINQ?
LINQ是Language Integrated Query的缩写,翻译成汉语就是语言集成查询。搜索一下网络,可以发现很多关于LINQ的描述:
1,LINQ是所有类型数据的统一编程模型,它可以让你使用一致的模型查询和使用数据,而不用关心数据源是什么。
2,LINQ是一种将SQL查询嵌入到代码中的另一种工具
3,LINQ是另外一种数据抽象层。
以上这些描述在某种程度上都是正确的,但每种描述都仅仅集中在一个方面。LINQ能够做的事情远远比嵌入的SQL查询要多很多,它也比“统一的编程模型”更容易使用,同时也远不止是数据模型的另外一套规则。
LINQ是一套简化和统一数据访问的实现方法。LINQ并不是要求你使用一种特定的架构,它使一些现有访问数据架构的实现更加便利。和使用其他工具一样,LINQ也存在好和坏两个方面。要从LINQ中得到最好的东西,就需要对它有所精通。
LINQ编程模型,将查询作为一流的概念引入到Micosoft .NET语言中。当然,这需要编程语言和框架(.NET Framework 3.5)的支持。
下面的代码将在页面上的GridView2中显示Country为USA客户名称:
- NorthWindDataContext NorthWind = new NorthWindDataContext();
- var query = from c in NorthWind.Customers where c.Country == "USA" select c.CompanyName;
- GridView2.DataSource = query;
- GridView2.DataBind();
当然,也可以在ASPX页面里进行设置:
- <%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title>LINQ 学习</title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <asp:GridView ID="GridView1" runat="server"
DataSourceID="LinqDataSource1" AllowSorting="True"- AutoGenerateColumns="False">
- <Columns>
- <asp:BoundField DataField="CompanyName"
HeaderText="CompanyName" ReadOnly="True"- SortExpression="CompanyName" />
- <asp:BoundField DataField="ContactName"
HeaderText="ContactName" ReadOnly="True"- SortExpression="ContactName" />
- <asp:BoundField DataField="Country"
HeaderText="Country" ReadOnly="True" SortExpression="Country" />- </Columns>
- </asp:GridView>
- </div>
- <asp:LinqDataSource ID="LinqDataSource1"
runat="server" ContextTypeName="NorthWindDataContext"- Select="new (CompanyName, ContactName, Country)"
TableName="Customers" Where="Country == @Country">- <WhereParameters>
- <asp:Parameter DefaultValue="USA" Name="Country" Type="String" />
- </WhereParameters>
- </asp:LinqDataSource>
- <hr />
- <asp:GridView ID="GridView2" runat="server">
- </asp:GridView>
- </form>
- </body>
- </html>
【编辑推荐】