zoukankan      html  css  js  c++  java
  • linq学习笔记(3):Where

        前面学习了LinqDataContext的基础知识,你可能会觉得手工定义和数据库中表对应的实体类很麻烦,不用担心,VS2008提供了自动生成实体类以及关系的工具。下面我们利用VS2008来创建DataContext,首先,右键点击项目,选择添加新项,然后选择“Linq to sql 类”,命名为DataCity.dbml。然后打开DataCity.dbml。设计视图上的文字提示你可以从服务器资源管理器或者攻击箱拖动项到设计界面上来创建实体类。那么,我们就在服务器资源管理器中创建一个指向DataCity数据库的数据连接,然后把DB_City表拖动到DataCity.dbml的设计视图上,按CTRL+S保存。打开DataCity.designer.cs可以发现系统自动创建了DataCity数据库中DB_City表的映射。 接下来,我们开始从LINQ to SQL语句入手,来全面了解一下LINQ,就从最简单的Where说起吧,这个在编写程序中也最为常用。

        
    WHERE:SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。Where操作包括3种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下:
        1.简单形式:
            var CityList = 
                    from City 
    in dc.DB_City 
                    
    where City.Pid == 0 
                    select City;
        对应SQL语句:
    SELECT [t0].[CityID], [t0].[Pid], [t0].[CityName], [t0].[IsVisible], [t0].[IsLastNode], [t0].[Order] AS [Order], [t0].[MetaID], [t0].[CityType], [t0].[ListName]
    FROM [dbo].[DB_City] AS [t0]
    WHERE [t0].[Pid] 
    = @p0
    -- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [0]
            2.关系条件形式:
        
            var CityList =
                    from City 
    in dc.DB_City
                    
    where City.Pid == 0 && City.IsVisible==true
                    select City;
        对应SQL语句:
    SELECT [t0].[CityID], [t0].[Pid], [t0].[CityName], [t0].[IsVisible], [t0].[IsLastNode], [t0].[Order] AS [Order], [t0].[MetaID], [t0].[CityType], [t0].[ListName]
    FROM [dbo].[DB_City] AS [t0]
    WHERE ([t0].[Pid] 
    = @p0) AND ([t0].[IsVisible] = @p1)
    -- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [0]
    -- @p1: Input Int (Size = 0; Prec = 0; Scale = 0) [1]

            var CityList =
                    from City 
    in dc.DB_City
                    
    where City.Pid == 0 || City.CityType == 2
                    select City;
        对应SQL语句:
    SELECT [t0].[CityID], [t0].[Pid], [t0].[CityName], [t0].[IsVisible], [t0].[IsLastNode], [t0].[Order] AS [Order], [t0].[MetaID], [t0].[CityType], [t0].[ListName]
    FROM [dbo].[DB_City] AS [t0]
    WHERE ([t0].[Pid] 
    = @p0) OR ([t0].[CityType] = @p1)
    -- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [0]
    -- @p1: Input Int (Size = 0; Prec = 0; Scale = 0) [2]
        3.First形式:返回集合中的一个元素,其实质就是在SQL语句中加TOP (1)
    var CityList = dc.DB_City.First();
        对应SQL语句:
    SELECT TOP (1) [t0].[CityID], [t0].[Pid], [t0].[CityName], [t0].[IsVisible], [t0].[IsLastNode], [t0].[Order] AS [Order], [t0].[MetaID], [t0].[CityType], [t0].[ListName]
    FROM [dbo].[DB_City] AS [t0]

     var CityList = dc.DB_City.First(City=>City.Pid==0);
        对应SQL语句:
    SELECT TOP (1) [t0].[CityID], [t0].[Pid], [t0].[CityName], [t0].[IsVisible], [t0].[IsLastNode], [t0].[Order] AS [Order], [t0].[MetaID], [t0].[CityType], [t0].[ListName]
    FROM [dbo].[DB_City] AS [t0]
    WHERE [t0].[Pid] 
    = @p0
    -- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [0]
        呵呵,今天就学习这点,明天继续抽空学习。
  • 相关阅读:
    hdu 5119 Happy Matt Friends
    hdu 5128 The E-pang Palace
    hdu 5131 Song Jiang's rank list
    hdu 5135 Little Zu Chongzhi's Triangles
    hdu 5137 How Many Maos Does the Guanxi Worth
    hdu 5122 K.Bro Sorting
    Human Gene Functions
    Palindrome(最长公共子序列)
    A Simple problem
    Alignment ( 最长上升(下降)子序列 )
  • 原文地址:https://www.cnblogs.com/peida/p/1237580.html
Copyright © 2011-2022 走看看