linq学习笔记(3):Where

长平狐 发布于 2013/06/17 12:54
阅读 65
收藏 0
    前面学习了Linq DataContext 的基础知识,你可能会觉得手工定义和数据库中表对应的实体类很麻烦,不用担心, 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 ]
    呵呵,今天就学习这点,明天继续抽空学习。

原文链接:http://www.cnblogs.com/peida/archive/2008/07/07/1237580.html
加载中
返回顶部
顶部