EF - EntityFrameWork

中文名:实体框架(数据持久化框架)

1.使用EF查询(Linq to EF)

1.1使用标准查询运算符来查询

OumindBlogEntities db = new OumindBlogEntities();

IQueryable<BlogArticle> list = db.BlogArticles.Where(a => a.ACate==2);

 

1.2使用Linq to EF

//1.EF默认使用延迟加载

//1.1 IQueryable<T> 支持延迟记载,linq编译成SQO,运行时会生成一颗 表达式树,也就是说,IQueryable中并没有保存查询的数据,而是保存了要查询的数据条件的 表达式树

IQueryable<BlogArticle> list = from a in db.BlogArticles where a.ACate == 2 select a;

//1.2那么当使用 IQueryable的时候(ToList,foreach遍历),才会通过 表达式树里的条件生成 sql 语句,并到数据库查询

list.ToList().ForEach(a => Console.WriteLine(a.AId + "," + a.ATitle));

2.关于 Expression

//1.创建一个表达式对象

Expression<Func<string, bool>> pre = (str => str.Length > 0);

//2.编译表达式树,生成 指定的 委托对象

Func<string,bool> fu = pre.Compile();

//3.执行委托

fu("123");

3.关于 形参设置默认值

public List<T> GetPagedList<TKey>(int pageIndex, int pageSize, out int rowCount, out int pageCount, Expression<Func<T, bool>> where, Expression<Func<T, TKey>> orderby, bool isAsc = true)

4.在程序集U中(比如UI层),如果使用 程序集B里的类b(比如BLL层):

4.1如果在类b中,直接创建 程序集D(比如DAL层)里的类的对象,没有问题。

4.2如果在定义类b的时候,使用到了程序集D的类(比如说继承,泛型参数),那么 程序集U 要求添加 程序集D的引用。

5.基于EF的新框架 简单三层

UI -> BLL - > IDAL -> DAL -> MODEL

1.表现层 直接使用 业务层对象

2.业务层 的每个具体的操作类,都继承于 业务父类,在业务父类中 定义了一个 数据层接口 IDAL、并且 业务父类 中还定义了一个 抽象方法;业务子类重写抽象方法,并实例化 父类里的 IDAL接口对象。

3.数据层 每个具体的操作类 继承于 数据父类,拥有父类通用的增删改查方法。

MVC之实体框架(数据持久化框架)EntityFrameWork(EF)的更多相关文章

  1. Java EE数据持久化框架笔记 • 【目录】

    章节 内容 实践练习 Java EE数据持久化框架作业目录(作业笔记) 第1章 Java EE数据持久化框架笔记 • [第1章 MyBatis入门] 第2章 Java EE数据持久化框架笔记 • [第 ...

  2. 几种.NET平台数据持久化框架介绍

    原文连接:http://yuxnet.blog.163.com/blog/static/164863495201131532223362/ 在.NET平台下,关于数据持久层框架非常多,本文主要对如下几 ...

  3. iOS开发 - CoreData框架 数据持久化

    Core Data Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还 ...

  4. Java EE数据持久化框架 • 【第5章 MyBatis代码生成器和缓存配置】

    全部章节   >>>> 本章目录 5.1 配置MyBatis Generator 5.1.1 MyBatis Generator介绍 5.1.2 MyBatis Generat ...

  5. Java EE数据持久化框架 • 【第1章 MyBatis入门】

    全部章节   >>>> 本章目录 1.1 初识MyBatis 1.1.1 持久化技术介绍 1.1.2 MyBatis简介 1.1.2 Mybatis优点 1.1.3 利用Mav ...

  6. FluentData,一个轻量级开源的.NET ORM数据持久化框架

    FluentData:一种使用Fluent API的新型轻量级ORM模型  FluentData 是微型 ORM(micro-ORM)家族的一名新成员,旨在比大型 ORM(full ORM)更加易用. ...

  7. Java EE数据持久化框架 • 【第6章 MyBatis插件开发】

    全部章节   >>>> 本章目录 6.1 MyBatis拦截器接口 6.1.1 MyBais拦截器接口介绍 6.1.2 MyBais拦截器签名介绍 6.1.3 实践练习 6.2 ...

  8. Java EE数据持久化框架 • 【第4章 MyBatis动态SQL】

    全部章节   >>>> 本章目录 4.1 MyBatis动态标签 4.1.1  MyBatis动态标签介绍 4.1.2 < if >标签 4.1.3 update语 ...

  9. Java EE数据持久化框架 • 【第3章 MyBatis高级映射】

    全部章节   >>>> 本章目录 3.1 一对一映射 3.1.1 自动化一对一映射 3.1.2 标签配置一对一映射 3.1.3 标签配置一对一映射 3.1.4 实践练习 3.2 ...

随机推荐

  1. NGINX配置小随笔

    达到以下效果: 1,特定目录被指定IP访问 2,不是指定的IP地址不能执行URI中特定字符串 3,特定目录中不能执行PHP文件 set $self_visit ''; if ( $request_ur ...

  2. IEqualityComparer<T>接口

    IEqualityComparer<T>接口的对象的主要作用在于自定义判断两个对象是否相等. 其中最常用的方法: bool Equals(T x, T y); 实现该方法用于比较两个对象是 ...

  3. 如何应对“改变现状”的失败"

    参加工作后,利用闲暇时间看了一些书,发现以上的场景可以通过心理学,神经生物学等相关的知识来解析,同时也可以利用这些知识来进行一些改进.那么下文就来尝试通过心理学来解析这个场景,同时提出一些改进方法. ...

  4. fstream读写UNICODE文件

    今天遇到要处理UNICODE文件的情况,网上找了一圈都是读取出字节,再转的,这个不方便啊!想起了有codecvt这么个东西,顺藤摸瓜,找到了方法. locale utf16(locale(" ...

  5. 【hihoCoder第十六周】RMQ-ST算法

    RMQ的大裸题.没什么意思.开始数组开小了,RE了一次.下面放代码. #include <bits/stdc++.h> using namespace std; vector<int ...

  6. vi高级技巧

    本文一般情况下用<c-字母>(里边的字母一般大小写无所谓,除非特别注明)表示按住ctrl同时按下相关字母,命令前加一个i 表示在插入模式下用这个命令 1. 选定文字/ 拷贝粘贴 v 为可视 ...

  7. 源码分析之struts1自定义方法的使用与执行过程

    最近有人问我,你做项目中用户的一个请求是怎么与struts1交互的,我说请求的url中包含了action的名字和方法名,这样就可以找到相应方法,执行并返回给用户了. 他又问,那struts1中有什么方 ...

  8. mysql 从data文件恢复数据库

    安装在D:\mysql\mysql-5.6.24-winx64下的mysql 由于系统坏了,移到另外一台机器上启动 步骤如下 1.复制以前的mysql安装文件及data文件下:2.全新安装mysql3 ...

  9. 【转】WCF、WebAPI、WCFREST、WebService之间的区别

    在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Services.我分享一下我对 ...

  10. SWTBOK測试实践系列(4) -- 软件測试技术的黑白之道

    白盒測试和黑盒測试往往是项目中最受争议的两种測试类型,每一个人偏爱各不同.现实生活中行业人员大多喜欢白盒測试而忽视黑盒測试,那么项目中又应该怎样平衡这两类測试呢?我们先来看两个案例. 案例一: 某移动 ...