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迭代器进行遍历。
未完待续。。。。。。。
LINQ和.NET数据访问的更多相关文章
- ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...
- ASP.NET Core 入门笔记9,ASP.NET Core + Entity Framework Core 数据访问入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...
- SharePoint 服务器端对象模型 之 使用LINQ进行数据访问操作(Part 2)
(四)使用LINQ进行列表查询 在生成实体类之后,就可以利用LINQ的强大查询能力进行SharePoint列表数据的查询了.在传统SharePoint对象模型编程中,需要首先获取网站对象,再进行其他操 ...
- 在 ASP.NET 中创建数据访问和业务逻辑层(转)
.NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均 ...
- 【SharePoint学习笔记】第3章 SharePoint列表新特性以及数据访问
第3章 SharePoint列表新特性以及数据访问 使用CAML查询语言 CAML:协作应用程序标记语言 Collaboration Application Markup Language ...
- C#-ade.net-实体类、数据访问类
实体类.数据访问类 是由封装演变而来,使对数据的访问更便捷,使用时只需要调用即可,无需再次编写代码 实体类是按照数据库表的结构封装起来的一个类 首先,新建文件夹 App_Code ,用于存放数据库类等 ...
- ado.net 实体类_数据访问类
实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...
- ADO.net 实体类 、数据访问类
程序分三层:界面层.业务逻辑层.数据访问层 比较规范的写程序方法,要把业务逻辑层和数据访问层分开,此时需要创建实体类和数据访问类 实体类: 例 using System; using System.C ...
- ADO,NET 实体类 和 数据访问类
啥也不说,看代码. --SQl中 --建立ren的数据库,插入一条信息 create database ren go use ren go create table xinxi ( code ) pr ...
随机推荐
- 获取表单提交的数据getParameter()方法
请求对象:request public String getParameter(String name); 通过request的getParameter(String name)方法获取 表单里面的n ...
- jq学习笔记(一)
1 .attr() 与 .removeAttr()方法 - atr()方法用来获取和设置元素属性 attr()有4个表达式: attr(传入属性名):获取属性的值 attr(属性名, 属性值):设置属 ...
- spring security之logoutHandler中的CookieClearingLogoutHandler
CookieClearingLogoutHandler实现LogoutHandler 接口 在退出登录时实现清除指定“name” 的cookie. 例:清除name为Authorization的coo ...
- Qt C++ libcaffe.so无法调用
在用QT编写调用caffe的工程时,发现一直有个错误: error while loading shared libraries libcaffe.so.1.0.0-rc3: cannot open ...
- Day 4 上午
内容提要 进制转换 高精度 数论:筛法,gcd/exgcd,逆元 进制转换 10=2^3+2^0=1010(2)10=3^2+3^0=101(3) 10进制x-->k进制:短除法 k进制x--& ...
- redux超易学三篇之一(单独说redux)
redux其实非常简单.当复杂的步骤被拆分,其实每一步都是很容易的. Github: 完整代码链接 本文在 create-react-app 中的 index.js 随便引入了一下. (其实不必如此. ...
- yyy的python3第八天学习
望着小月亮:https://www.cnblogs.com/triple-y/ 请尊重原创:https://www.cnblogs.com/triple-y/p/9655753.html python ...
- Services版本tomcat 内存和perm 设置
当在tomcat的webapps文件夹中部署需要大量资源的war包时,启动tomcat,war包将不能被成功部署. tomcat安装有services版安装和开发版安装. 本经验将介绍如何设置两种版本 ...
- C# .Net正则表达式去除HTML标记和空格
C# .Net正则表达式去除HTML标记和空格 http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaoch ...
- 167 Two Sum-Input array is sorted, 125 Valid Palindrome,344
注意这两个元素不能是相同的. 解法一:二分查找法,逐一取数组中的值,然后second = target - numbers[i] , 用二分查找法求第二个值. 时间复杂度:O(nlongn) clas ...