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

LINQ to SQL 数据库与LINQ对象的关系

阅读更多

LINQ的优点是提供了在代码中使用强类型化对象,这些对象还映射到以后的数据库对象上

下面是数据库对象和LINQ对象的映射关系

数据库对象 LINQ对象
数据库 DataContext
类和集合
视图 类和集合
属性
关系 嵌套集合
存储过程 方法

左列是数据库,数据库是一个完整的实体--表、视图、触发器、存储过曾构成了数据库

右列是LINQ对象

DataContext对象,他绑定到数据库上,为了与数据库进行必要的交互操作,该对象包含一个连接字符串,并管理所发生的所有事物的处理,还负责记录操作,管理数据的输出。Data对象全面管理与数据库的事务处理。

数据库关系,各个对象之间映射的嵌套集合。

存储过程,会映射为DataContext实例的方法上

在调用一个Linq查询 dc.Products 的时候

查询会被LINQ to SQL 转换成为SQL查询语句,提供给数据库,LINQ to SQL 层通过这个查询从数据库中获得行数据,把返回的数据编程强力型对象集合,便于使用。

DataContext对象

DataContext对象管理所发生的所有事物的处理,并提供操作接口

实例化DataContext对象有三个可选参数(数据名,连接串,另一个DataContext对象)

1.使用ExecuteQuery,查询所有产品集合

public void UsingExecuteQuery()
      {
          // using ExecuteQuery
          //获得一个DataContext对象,注意他使用的是DataContext
          DataContext dc = new DataContext(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString());
          //执行一个明文查询,并返回一个集合,注意泛型的使用
          IEnumerable<Products> myProducts = dc.ExecuteQuery<Products>("SELECT * FROM PRODUCTS", "");
          //便利集合
          foreach (Products item in myProducts)
          {
              Response.Write(item.ProductID + " | " + item.ProductName + "<br />");
          }

      }

如果想要添加参数的查询可以使用以下占位符的形式

IEnumerable<Products> myProducts = dc.ExecuteQuery<Products>("SELECT * FROM PRODUCTS WHERE UnitsInStock > {0}", 50);

2.Connection 属性 返回一个 System.Data.SqlClient.SqlConnection实例

public void Connection()
        {
            //注意这里使用的是NorthwindDataContext对象
            NorthwindDataContext dc = new NorthwindDataContext();
            Response.Write(dc.Connection.ConnectionString);
        }

3.Transaction 属性

如果有一个可以使用的Ado.net 事物,就可以使用Transaction 属性把这个事务处理赋予DataContext对象实例。 还可以像下面是用 TransactionScope 实现事务,如果数据库操作失败,就回退所有操作,返回最初状态

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

            using (TransactionScope myScope = new TransactionScope())
            {
                //新建产品
                Products p1 = new Products() { ProductName = "Bill's Product" };
                //插入这个产品,并且获得插入后的p1信息
                dc.Products.InsertOnSubmit(p1);

                Products p2 = new Products() { ProductName = "Another Product" };
                dc.Products.InsertOnSubmit(p2);

                try
                {
                    dc.SubmitChanges();
                    //返回刚刚插入数据的ID值
                    Response.Write(p1.ProductID + "<br />");
                    Response.Write(p2.ProductID + "<br />");
                }
                catch (Exception ex)
                {
                    Response.Write(ex.ToString());
                }
                //指示操作以完成
                myScope.Complete();
            }

4.DataContext 其他的方法和属性

方法:

image

属性:

image

Table<TEntity> 对象

Table<TEntity>对象表示在数据库中操作的表,数据库中的表都会表示成Table<TEntity>的实例,比如之前的Product可以表示成Table<Product>,有许多方法是可以用于Table<TEntity>对象,其中一些如下:

image

分享到:
评论

相关推荐

    一个简单的linq to sql例子

    接下来,我们需要创建一个DataContext对象,它是LINQ to SQL与数据库交互的基础。DataContext会映射到数据库模式,并提供对表的强类型访问。 ```csharp using System.Data.Linq; // 创建连接字符串,指向你的...

    LINQ To SQL实现分页效果源码

    在本例中,我们关注的是LINQ to SQL,这是一种特定的LINQ实现,它用于与关系数据库进行交互,如SQL Server 2005。在VS2008中,LINQ to SQL提供了直观的方式来映射数据库模式到.NET类,从而简化了数据访问。 分页是...

    通过Linq操作Sql Server数据库

    Linq to SQL通过DBML文件(.dbml)或代码First方式定义数据库表与对象之间的映射关系。DBML是图形化的设计工具,而代码First则通过C#或VB.NET代码定义模型。 **7.事务处理** Linq支持数据库事务,可以通过...

    LINQ to SQL.rar

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

    linq基础 linq to sql

    LINQ to SQL是LINQ技术在SQL数据库操作上的具体实现,它将数据库操作对象化,降低了开发难度,提高了代码的可读性。通过学习和熟练掌握LINQ,开发者可以更高效地与各种数据源交互,提高开发效率和代码质量。在实际...

    c#使用Linq实现SQL数据库的增、删、改、查

    本教程将详细讲解如何使用C#的LINQ来实现SQL数据库的增、删、改、查操作。 首先,我们需要引入必要的命名空间,这包括`System.Linq`和`System.Data.Linq`。`System.Linq`提供了用于查询的扩展方法,而`System.Data....

    LINQ TO SQL DEMO

    【标题】"LINQ TO SQL DEMO"是一个关于使用LINQ (Language Integrated Query) 技术与SQL数据库交互的示例项目。LINQ是.NET框架中的一项重要特性,它允许开发者使用C#或Visual Basic等语言的语法直接进行数据查询,...

    Linq To Sql进阶系列

    - **Linq To Sql的优势**:使用Linq To Sql时,只需基于数据库表生成相应的.NET类文件,系统会自动处理数据与对象之间的转换。这样做的好处是减少代码量,提高开发效率,并降低出错的可能性。 #### 2. Linq To Sql...

    c#linq to sql

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

    Linq to sql 教程

    【Linq to sql 教程】是一门针对初学者精心设计的教程,旨在帮助学习者逐步掌握使用Linq(Language Integrated Query,语言集成查询)与SQL进行数据操作的技术。Linq是.NET框架中的一个强大特性,它允许开发人员在C#...

    LINQ to SQL可视化调试工具

    LINQ to SQL是.NET Framework下的一个ORM(Object-Relational Mapping)框架,它允许开发人员通过C#或VB.NET直接操作SQL Server数据库,而无需编写SQL语句。这项技术极大地简化了数据库操作,并提高了代码的可读性和可...

    Linq To SQL

    总的来说,LINQ to SQL提供了一个强大而直观的框架,使得.NET开发者能够更高效地与关系数据库交互,减少了对SQL的直接依赖,增强了代码的可读性和可维护性。通过DataContext的使用,可以轻松地进行数据库查询和数据...

    LINQ to SQL和Entity Framework对比与关联

    - **对象模型**:LINQ to SQL 中的对象模型与数据库表结构更为接近,而 EF 的 EDM 提供了更高级别的抽象。 - **查询能力**:随着 EF 4.0 的发布,两者在查询能力方面差异不大,EF 4.0 基本上达到了与 LINQ to SQL ...

    linq to sql 学习笔记

    LINQ to SQL是LINQ的一个特定实现,专用于与SQL Server数据库进行交互,提供了一种高效、直观的方式来操作关系数据。 1. 预备知识 在深入学习LINQ to SQL之前,我们需要了解一些基础概念: - **什么是LINQ to ...

    linq to sql连接数据库

    LINQ to SQL 是 Microsoft 提供的一种用于访问关系型数据库的强大工具,它允许开发人员使用 C# 或 Visual Basic .NET 编写查询来与数据库交互。LINQ to SQL 可以自动将 LINQ 查询转换为 SQL 查询,并处理数据库访问...

    LINQ to SQL手册

    22. **DataContext**:`DataContext` 类是 LINQ to SQL 的核心,它封装了与数据库的会话,并负责对象的持久化。 23. **Dynamic Query**:允许在运行时构建 LINQ 查询,增强了查询的灵活性。 24. **Views**:如何...

    LINQ To Sql学习文档

    LINQ To SQL 作为 LINQ 的一部分,主要用于处理关系型数据库中的数据,它能够将 SQL 查询语句转换为 .NET 语言中的对象操作。 #### 二、Visual Studio 2008 新特性及其对 LINQ 的支持 - **.NET Framework 对重定向...

    ASP.NET MVC+LINQ TO SQL登陆

    它提供了对象关系映射(ORM)功能,将数据库表映射为.NET类,简化了数据库操作。 在ASP.NET MVC中创建登录功能,首先需要设计一个用户模型(User Model),这个模型通常会包含用户名、密码等字段。这个模型类可以...

    Linq To Northwind数据库

    LINQ支持对各种数据源进行查询,包括SQL数据库、XML文档、集合以及.NET框架中的其他数据结构。 **二、LINQ的优势** 1. **类型安全**:由于LINQ查询是在编译时处理的,所以可以检测到错误,提高了代码的可靠性。 2....

    linq to sql实现分层与gridview使用实现增删改

    在使用LINQ to SQL时,DAL是关键部分,它负责与数据库的交互。我们可以在DAL中创建一个DataContext类,这个类代表了与数据库的会话,包含了数据库中的表和视图的映射对象。通过DataContext,我们可以轻松地执行查询...

Global site tag (gtag.js) - Google Analytics