LINQ和.NET数据访问

.NET数据访问

在.NET中对于数据的访问大致有三个层面,数据访问层、内存数据集、业务逻辑层。数据层,包括了XML配置文件以及一些常用的数据库(使用SQL语句);内存数据集,主要是DataSet数据集,在DataSet中包括Datatable,而Datatable中又分为DataRow和DataColumn。具体的访问数据集中的数据,一般通过DataRow;业务逻辑层,就是常用的一些对象的泛型集合。

LINQ基础

与数据访问三个层面对应,数据访问层,使用LINQ to XML、LINQ to SQL以及LINQ to Entities;内存数据集,使用LINQ to DataSet;业务逻辑层,使用LINQ to Object。

回想一下,我们曾经频繁地需要使用过滤、分组及转换从对象集合里提取信息以获取正确的输出。我们或许使用for、foreach循环遍历这些信息,根据一些条件去检查每一个对象,操作或保存这个对象。这些代码属于命令式代码。

而如今使用LINQ去操作对象集合,属于声明式代码。这类代码具有开发效率高,可读性强,且在业务逻辑层,使用LINQ to Object具有提升执行效率的好处。LINQ的语言类似SQL。它有from、where、select、join、group by、以及order by语句。

LINQ使用的一般流程。其操作的一般为对象的泛型集合,使用LINQ常用语句后,提取出IEnumerable泛型集合,以便于foreach迭代器进行遍历。

未完待续。。。。。。。

时间: 2024-10-14 17:52:29

LINQ和.NET数据访问的相关文章

SharePoint 服务器端对象模型 之 使用LINQ进行数据访问操作(Part 2)

(四)使用LINQ进行列表查询 在生成实体类之后,就可以利用LINQ的强大查询能力进行SharePoint列表数据的查询了.在传统SharePoint对象模型编程中,需要首先获取网站对象,再进行其他操作:使用LINQ也是类似,对数据的访问和操作都要先获取DataContext网站,之后再通过这个DataContext进行数据访问. 1.获取网站和列表 DataContext的创建同样也是要使用绝对路径进行构造,并使用GetList方法获取相应的列表.例如下面的代码获取Chapters列表中所有的

重要!!!实体类、数据访问类

创建两个类: users类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实体类_数据访问类.App_Code { public class Users { private int _Ids; /// <summary> /// ids /// </summary> public int Ids { get { return _Ids;

实体类、数据访问类中的属性拓展

类中: using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; namespace 实体类_数据访问类.App_Code { public class Users { SqlConnection conn = null; SqlCommand cmd = null; public Users() { conn = new S

企业级应用框架(二)三层架构之数据访问层的封装与抽象

接上一篇我们来对数据访问层进行封装与抽象.在上一篇我们知道,要解除BLL对DAL的依赖,我们就必须抽象出DAL层的接口,同时基于DAL的数据访问技术很多,如EF,ADO.NET,LINQ TO SQL,因此,我们的数据访问层必须对这些技术提供相应的支持.所以今天我们要做的事情有两件,第一,定义我们的数据访问层接口:第二,屏蔽各类数据库访问技术的差异,提供统一的数据库访问模型.举个例子,我们只需要修改一下我们的配置文件,就能够把ADO.NET的实现方式,改变成EF的实现方式.好下面搭建我们的三层构

实体类,数据访问类.字符串攻击.防攻击

程序分三层:界面层.业务逻辑层.数据访问层 这里主要操作的是数据访问层,数据访问层又分为: 1.实体类 2.数据访问类 存放位置:APP_Code文件中 一.实体类 最简单的封装把数据库的表名变成类的类名把数据库的每一个列,变为实体类中的成员变量和属性列名与属性名一致 有几行就有几个实体类 这是一个简单的实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namesp

实体类,数据访问类应用

一,表中某个数据进行重新排序 (1)数据访问类 using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; namespace ConsoleApplication2.App_Code { public class StudentsData { SqlConnection conn = null; SqlCommand cmd

数据访问层之Repository

数据访问层之Repository 接上文 项目架构开发:数据访问层之Logger 本章我们继续IRepository开发,这个仓储与领域模式里边的仓储有区别,更像一个工具类,也就是有些园友说的"伪仓储", 这个仓储只实现单表的CURD与Query,都是通过主键ID或拉姆达表达式进行操作的,返回的都是单表的实体或实体集合, 多表的在IQuery接口中再讲:虽然如此,但是如果与"活动记录"开发模式搭配的话,会非常合适,可以减少开发的时间 及出错几率,更符合开发人员的类型

项目架构开发:数据访问层之Query

接上文 项目架构开发:数据访问层之Repository 上一章我们讲了IRepository接口,这张我们来讲IQuery 根据字面意思就可以知道,这次主要讲数据查询,上一章我们只针对单表做了查询的操作,多表联查并没有实现 其实对于任何一个项目来说,多表联查都是比较麻烦的地方,因为项目的“读”操作,特别是多表的“读”,至少占据所有“读”的一半以上 然而至今,据我所知还没有哪一款ORM工具可以灵活处理多表联查:想要不写sql语句,又想性能高,还想用强类型的ling查询方法:这对于多表查询来说比较难

C#-ade.net-实体类、数据访问类

实体类.数据访问类 是由封装演变而来,使对数据的访问更便捷,使用时只需要调用即可,无需再次编写代码 实体类是按照数据库表的结构封装起来的一个类 首先,新建文件夹 App_Code ,用于存放数据库类等类文件,新建类,例如: Users(与数据库访问的表同名)和 UsersData 在类UsersData里写数据库访问方法 using System; using System.Collections.Generic; using System.Linq; using System.Text; us