MVC之实体框架(数据持久化框架)EntityFrameWork(EF)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > MVC之实体框架(数据持久化框架)EntityFrameWork(EF)

MVC之实体框架(数据持久化框架)EntityFrameWork(EF)

 2014/3/30 23:15:18  艾新草  博客园  我要评论(0)
  • 摘要:EF-EntityFrameWork中文名:实体框架(数据持久化框架)1.使用EF查询(LinqtoEF)1.1使用标准查询运算符来查询OumindBlogEntitiesdb=newOumindBlogEntities();IQueryable<BlogArticle>list=db.BlogArticles.Where(a=>a.ACate==2);1.2使用LinqtoEF//1.EF默认使用延迟加载//1.1IQueryable<T>支持延迟记载
  • 标签:MVC Framework 数据

EF - EntityFrameWork

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

 

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

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

class="brush:csharp;gutter:true;">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.数据层 每个具体的操作类 继承于 数据父类,拥有父类通用的增删改查方法。

上一篇: 科技泡沫背后的幸福线:消费者成免费服务受益方 下一篇: 没有下一篇了!
发表评论
用户名: 匿名