`
terryfeng
  • 浏览: 504169 次
  • 性别: 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在.NET框架的最新版本中已被Entity Framework所取代,但了解它的基本工作原理对于理解ORM(对象关系映射)的...

    LINQ to SQL.rar

    **LINQ to SQL** 是微软.NET Framework中的一种技术,它允许开发者使用C#或VB.NET语言的查询表达式(Language Integrated Query,简称LINQ)直接对SQL数据库进行操作。这项技术将关系数据库的数据操作与对象模型无缝...

    Linq To Sql进阶系列

    - **Linq To Sql动态查询**:Linq To Sql提供了强大的动态查询能力,允许开发者使用对象来构建查询条件,从而避免了SQL字符串拼接的问题,同时也增加了代码的可读性和安全性。 #### 7. Linq To Sql进阶系列(七)...

    Linq to sql 教程

    8. **存储过程与函数**:展示如何调用数据库中的存储过程和用户定义函数,并将它们集成到Linq查询中。 9. **异步查询**:介绍如何利用异步编程来优化性能,特别是在处理大量数据时。 10. **性能优化**:讨论Linq ...

    linq to sql 学习笔记

    - **存储过程的使用**:LINQ to SQL支持调用数据库中的存储过程,可以映射为DataContext的方法。 4. 性能与最佳实践 - **性能优化**:合理使用查询缓存,避免不必要的数据加载,以及注意使用批处理提交更改,都能...

    c#linq to sql

    C# LINQ to SQL 是微软.NET Framework中的一种数据查询技术,它允许开发人员使用C#语言直接对SQL数据库进行操作,极大地简化了数据库交互的工作。LINQ(Language Integrated Query,语言集成查询)是.NET Framework ...

    LINQ to SQL手册

    20. **Stored Procedures**:使用 LINQ to SQL 调用数据库存储过程,并将结果映射到对象。 21. **User-Defined Functions**:创建和使用自定义函数以扩展 LINQ to SQL 的功能。 22. **DataContext**:`DataContext...

    linq to sql学习资料(全word文档)

    本学习资料包涵盖了并发控制、事务管理、查询语法以及存储过程等多个关键主题,对于深入理解和应用LINQ to SQL至关重要。 1. **并发控制**:在多用户环境下,多个用户可能同时修改相同的数据,导致数据不一致。LINQ...

    ASP.NET MVC+LINQ TO SQL登陆

    在这个场景中,我们将讨论如何在ASP.NET MVC项目中实现一个使用LINQ to SQL的登录功能。 LINQ(Language Integrated Query,语言集成查询)是.NET Framework的一部分,它允许开发者使用C#或VB.NET等语言的语法来...

    LINQ To Sql学习文档

    - **LINQ To SQL 基础**:LINQ To SQL 允许开发者以声明式的方式编写数据库查询,从而简化了数据访问层的开发过程。它通过生成相应的数据访问类和存储过程来实现对数据库的操作,而无需手动编写复杂的 SQL 语句。 - ...

    Linq To SQL

    LINQ to SQL提供了对事务、视图和存储过程的全面支持,同时也简化了数据验证和业务逻辑的集成。 **DataContext** 是LINQ to SQL的核心组件,它充当着对象和数据库之间的中介。DataContext类负责将对象模型中的查询...

    LINQ TO SQL 增删改 demo

    DataContext是LINQ to SQL的主要入口点,它包含了对数据库的会话信息,以及数据库中的表和存储过程的映射。在本例中,可能有一个DataContext类对应于留言薄的数据库。 接着,我们需要定义实体类,这些类是数据库表...

    学习linq to sql的好工具

    LINQ to SQL是.NET Framework的一部分,它允许开发者通过对象模型直接对SQL数据库进行操作,无需编写SQL语句。在LINQPad中,你可以创建并运行LINQ to SQL查询,观察它们转换成的SQL语句,从而深入理解LINQ的工作原理...

    Linq to SQL使用介绍

    当你在 Visual Studio 中使用 LINQ to SQL 设计器创建数据模型时,DataContext 类会被自动生成,包含了数据库中的表和存储过程的映射。通过这个类,开发者可以直接执行查询和数据库操作。 3. **实体类**:实体类是...

    linq to sql 、linq to xml 、linq to object

    LINQ to SQL 是一种数据访问技术,它允许开发者使用C#或VB.NET的查询语法直接对SQL Server数据库进行操作。通过DataContext类,开发者可以映射数据库表到.NET对象,从而实现对象关系映射(ORM)。以下是一步步学习...

    LINQ to SQL语句(20)之存储过程

    LINQ to SQL 是 .NET Framework 提供的一种数据访问技术,它允许开发人员使用 C# 或 VB.NET 语言直接对关系数据库进行查询,将 SQL 查询语句转化为强类型对象。在这个主题中,我们将深入探讨如何在 LINQ to SQL 中...

    Linq 大全 Linq To Sql Linq To DataSet Linq To Object Linq to Xml

    在标题和描述中提到的"Linq To Sql"、"Linq To DataSet"、"Linq To Object"和"Linq To Xml"是LINQ的四种主要应用方式,分别用于SQL数据库、DataSet、内存中的对象以及XML数据的查询。 1. **LINQ to SQL**: LINQ ...

    Linq to sql Memcached封装

    Linq to SQL是.NET框架中的一种数据访问技术,它允许开发人员使用C#或VB.NET的LINQ(Language Integrated Query)语法来操作数据库。这种技术极大地简化了数据库交互,使得代码更加简洁、易读,并提供了强类型的数据...

    linq to sql 操作存储过程、函数总结(二)

    本文将深入探讨“LINQ to SQL”在操作数据库存储过程和函数方面的应用。LINQ(Language Integrated Query,语言集成查询)是.NET框架中的一个强大工具,它允许开发人员使用C#或VB.NET等语言的自然语法来查询数据。...

    linq技术对SQL Server数据库的增删改查 C#实现

    其次,**LINQ (Language Integrated Query)** 是.NET框架的一个重要组成部分,它允许开发者在C#代码中直接书写查询,使得查询数据库的过程更加自然和直观。LINQ支持多种数据源,包括SQL Server数据库。通过使用LINQ...

Global site tag (gtag.js) - Google Analytics