LINQ编程模型详细分析

在向大家详细介绍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客户名称:

 
 
 
  1. NorthWindDataContext NorthWind = new NorthWindDataContext();
  2. var query = from c in NorthWind.Customers where c.Country == "USA" select c.CompanyName;
  3. GridView2.DataSource = query;
  4. GridView2.DataBind();

当然,也可以在ASPX页面里进行设置:

 
 
 
  1. <%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" Inherits="_Default" %>
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3.  xmlns="http://www.w3.org/1999/xhtml">
  4.  runat="server">
  5. </strong>LINQ 学习<strong>
  6.  id="form1" runat="server">
  7.  ID="GridView1" runat="server" 
    DataSourceID="LinqDataSource1" AllowSorting="True"
  8. AutoGenerateColumns="False">
  9.  DataField="CompanyName" 
    HeaderText="CompanyName" ReadOnly="True"
  10. SortExpression="CompanyName" />
  11.  DataField="ContactName" 
    HeaderText="ContactName" ReadOnly="True"
  12. SortExpression="ContactName" />
  13.  DataField="Country" 
    HeaderText="Country" ReadOnly="True" SortExpression="Country" />
  •  ID="LinqDataSource1" 
    runat="server" ContextTypeName="NorthWindDataContext"
  • Select="new (CompanyName, ContactName, Country)" 
    TableName="Customers" Where="Country == @Country">
  •  DefaultValue="USA" Name="Country" Type="String" />
  •  />
  •  ID="GridView2" runat="server">
  • 分享题目:LINQ编程模型详细分析
    文章源于:http://www.shufengxianlan.com/qtweb/news27/474827.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联