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. LeetCode_Reverse Nodes in k-Group

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...

  2. 管理TEMP数据

    SQL> select * from v$mystat where rownum<2; SID STATISTIC# VALUE ---------- ---------- ------- ...

  3. 移动互联与O2O的完美衔接

    移动互联网虽然市场颇大,前景广阔,但是由于数据过于密集,很难精准的定位所谓的目标客户群,然而O2O的线下市场却与互联网市场有极大的反差.一直觉得高校周边的小商家是最幸福的生意人,客户明确(就是本校学生 ...

  4. hdu 1874 畅通工程续(最短路)

    最短路问题! 最简单的最短路问题! 恩! #include<stdio.h> #define MAX 1000000 int map[500][500]; int n,m,start,en ...

  5. LinearLayout 和 RelativeLayout

    共有属性: java代码中通过btn1关联次控件 android:id="@+id/btn1" 控件宽度 android:layout_width="80px" ...

  6. javascript定时器:setTimeout与setInterval

    概述: setTimeout:在指定的延迟时间之后调用一个函数或者执行一个代码片段,只执行一次: setInterval:周期性地调用一个函数(function)或者执行一段代码,重复执行: 语法格式 ...

  7. Mongo服务器集群配置【转】

    http://www.cnblogs.com/wly923/tag/MongoDB/ 当前标签: MongoDB   Mongo服务器集群配置学习三——分片 风行影者 2013-04-14 22:35 ...

  8. [Redux] Extracting Presentational Components -- Footer, FilterLink

    Code to be refactored: let nextTodoId = 0; class TodoApp extends Component { render() { const { todo ...

  9. NSString属性什么时候用copy,什么时候用strong?【转】

    转自:http://www.cocoachina.com/ios/20150512/11805.html. 我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境): ...

  10. iOS_SN_沙盒文件操作及位置

    转载:http://blog.csdn.net/hello_hwc/article/details/44916909 沙盒的结构如下所示 一 访问Bundle 注意Bundle只读,不能写入 创建一个 ...