`
terryfeng
  • 浏览: 493923 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

LINQ to SQL 查询数据库和使用存储过程

阅读更多

如下列出查询表达式,常用操作符,与SQL语句对应。

image

where  关键字的使用

public void MyWhere()
       {
           NorthwindDataContext dc = new NorthwindDataContext();
           //查询产品名称以L开头的记录
           var query = from p in dc.Products
                       where p.ProductName.StartsWith("L")
                       select p;

           //两个where过滤两个条件,第二个where会在第一个where基础上进行第二次条件谓词
           var query1 = from p in dc.Products
                        where p.ProductName.StartsWith("L")
                        where p.ProductName.EndsWith("i")
                        select p;

           foreach (Products item in query1)
           {
               Response.Write(item.ProductID + " | " + item.ProductName + "<br />");
           }

       }

 

join 连接操作

拖动数据库的Orders表到设计器中来,结果如下

image

设计器会根据表在数据库中设定的依赖关系,生成表对象之间的依赖关系,查看表关系,可以打开SQL Server 管理器,打开数据库右键点击表,选择查看依赖关系。

image

可以看到Order依赖Customer

image

如果你想给表添加或者管理一个FK的话可以看下图,如果想添加就右击、键目录、添加键,如下图

image

再点击表和列规范后面的按钮

image

选择主表和列对应本表那个列(外键)确定,点保存,刷新一下就可以看到了

代码:

public void MyJoin()
        {
            // PERFORMING JOINS

            NorthwindDataContext dc = new NorthwindDataContext();
            dc.Log = Console.Out;

            var query = from c in dc.Customers
                        join o in dc.Orders on c.CustomerID equals o.CustomerID
                        orderby c.CustomerID
                        select new
                        {
                            c.CustomerID,
                            c.CompanyName,
                            c.Country,
                            o.OrderID,
                            o.OrderDate
                        };

            foreach (var item in query)
            {
                Response.Write(item.CustomerID + " | " + item.CompanyName
                     + " | " + item.Country + " | " + item.OrderID
                      + " | " + item.OrderDate + "<br />");
            }
        
        }

 

组合数据项Group

拖动Categories 表到设计器,如下图

image

代码如下:

public void MyGroup()
        {
            NorthwindDataContext dc = new NorthwindDataContext();

            var query = from p in dc.Products //from谓词
                        orderby p.Categories.CategoryName ascending //排序
                        group p by p.Categories.CategoryName into g //以名字进行分组,导入到新的集合,Key是分组的CategoryName当前名,Value 是分组的Products对象
                        select new { Categories = g.Key, Products = g }; //建立一个匿名对象,分别,将Key,和Value放进去

            foreach (var item in query)
            {
                Response.Write("分组Key,CategoryName:" + item.Categories + "<br />");

                foreach (var innerItem in item.Products)
                {
                    Response.Write( innerItem.ProductName + "<br />");
                }

                Response.Write("<p />");
            }
        }

LINQ 调用存储过程

设计器的右侧是用来显示和定义存储过程的地方,可以把存储过程拖进来,在使用的时候会变成LINQ语法DataContext对象中的一个方法

image

代码如下:

public void MyProcedure()
        {
            NorthwindDataContext dc = new NorthwindDataContext();
            //ISingleResult< Ten_Most_Expensive_Products_个结果 > result = dc.Ten_Most_Expensive_Products();    //单个返回序列结果
            //返回结果类型和怪,出现了中文,这是我直接拖动自动生成的,我们可以替换,这个_个结果在Northwind.designer.cs 文件中
            ISingleResult<Ten_Most_Expensive_Products_Result> result = dc.Ten_Most_Expensive_Products(); 
            foreach (var item in result)
            {
                Response.Write(item.TenMostExpensiveProducts + " | " + item.UnitPrice + "<br />");
                // 属性名称,对应 存储过程中的 结果列名称,SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
            }
        
        
        }
替换方法:

image

分享到:
评论

相关推荐

    Linq To SQL

    LINQ TO SQL 提供了对事务、视图、存储过程的完全支持。它同样为集成数据校验和业务层逻辑到你的数据模型中提供了一种简单的实现方式。 在 LINQ to SQL 中,关系数据库的数据模型映射到用开发人员所用的编程语言表示...

    LINQ_to_SQL语法及实例大全

    LINQ to SQL语句(20)之存储过程 63 1.标量返回 63 2.单一结 果集 64 3.多个可 能形状的单一结果集 65 4.多个结果集 70 5.带输出参数 79 LINQ to SQL语句(21)之用户定义函数 80 1.在Select中使用用户定义的标量函数 ...

    linq to sql 三层模式

    数据库相关的操作,如查询、插入、更新和删除。LINQ to SQL消除了写存储过程和从数据访问层调用的过程,它可以在运行的时候自动生成合适的SQL脚本来进行数据库操作。

    silverlight+wcf+linq to sql项目实战

    目标: 1.简单的网站嵌入单件silverlight.(嵌入到网站) 1.1.图片轮播.视频轮播. 2.网络传输使用wcf服务,使用(basicHttpBinding) 2.1.支持使用基于流的上传与下载资源(图片,视频...3.1.使用linq to sql进行数据库操作.

    LINQ_to_SQL语句之存储过程

    LINQ to SQL语句之存储过程 1.标量返回 在数据库中,有名为Customers Count By Region的存储过程。该存储过程返回顾客所在"WA"区域的数量。 ......

    c# Linq WebService rss

    •SampleQueries: 这是最重要的示例,其中包含了 500 多个关于如何在 LINQ to Objects、LINQ to SQL、LINQ to XML 和 LINQ to DataSet 中使用各个查询运算符的例子。 •SimpleLambdas: 几个关于如何编写和使用 ...

    LINQ 实战 7/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 1/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 3/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 4/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 2/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 11/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 5/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 8/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 6/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 9/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    LINQ 实战 10/11

    本书第一部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的三大主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ...

    ADO.Net助手V1.10---一个获取ADO.Net连接字符串,测试SQL命令的辅助软件

    ADO.Net助手还可以用来以插入SQL语句形式导出导入记录,目前提供了插件还可以生成ADO.Net的C#数据库代码和上述支持的数据库Linq to Sql数据库代码,大大简化编写数据库代码复杂度和缩短了编写数据库代码时间。...

    WindowsPhone 9. 使用本地数据库

    Window Phone Mango 应用程序使用LINQ to SQL 访问本地数据库。 LINQ to SQL 提供了面向对象的方法,用于处理存储在数据库中的数据。System.Data.Linq.DataContext类连接应用程序的对象模型与数据库中的数据。 目标 ...

    ADO.Net助手V1.00---一个获取ADO.Net连接字符串,测试SQL命令的辅助软件

    ADO.Net助手还可以用来以插入SQL语句形式导出导入记录,目前提供了插件还可以生成ADO.Net的C#数据库代码和上述支持的数据库Linq to Sql数据库代码,大大简化编写数据库代码复杂度和缩短了编写数据库代码时间。...

Global site tag (gtag.js) - Google Analytics