zoukankan      html  css  js  c++  java
  • 【ASP.NET MVC 学习笔记】- 07 使用 Entity Framework

    本文参考:http://www.cnblogs.com/willick/p/3304534.html

    1、ORM(Object Relation Mapping)工具,是为了解决“关系数据库”和“面向对象语言”之间的“失配”,使得开发人员不用过多关心持久层而可以花更多的时间专注于业务。

    2、Entity Framework(EF)是微软以ADO.NET为基础所发展出来的ORM解决方案,以Entity Data Model(EDM) 为主。利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序中的类对象(Entity),而数据字段都转换为属性 (Property),关系则转换为结合属性 (Association),让数据库的 E/R 模型完全的转成对象模型。

    3、在ASP.NET MVC中使用EF的步骤:创建一个继承自System.Data.Entity.DbContext的类,这个类将为数据库中的每个表定义一个属性,属性的名称代表数据库中的表名。DbSet作为返回类型,它是用于生成CRUD(Create、Read、Update和Delete)操作的装置,映射数据库表的行。示例:

    public class EFDbContext : DbContext 
    { 
        public DbSet<Book> Books { get; set; } 
    }

    4、改造仓储类:

    public class BookRepository : IBookRepository
    {
        private EFDbContext context = new EFDbContext();
        
    //IQueryable可替换为IEnumerable
    public IQueryable<Book> Books { get { return context.Books; } } }

    5、展示数据:

    public ViewResult List() 
    {
        return View(repository.Books.OrderBy(b => b.Price).Where(b => b.Price < 100).Take(10));
    }

    6、IQueryable 和 IEnumerable的区别:使用IQueryable,EF先根据Linq生成相应的sql语句再执行查询;使用IEnumerable,EF直接生成sql(不包含任何过滤、排序等),它一次性把数据都取出来在内存中进行过滤、排序等操作。因此IQueryable的性能比IEnumerable差,但是IEnumerable比较吃内存,在数据量较大的时候不宜使用。

  • 相关阅读:
    【SQL】语句综合练习
    【Java基础】static关键字
    【SQL】定义约束
    【SQL】数据定义语言(DDL)
    【SQL】事务处理语言(TCL)
    Stream流
    线程池(重点)
    CountDownLatch CyclicBarrier Semaphore
    集合线程安全
    20210128 寻找数组的中心索引
  • 原文地址:https://www.cnblogs.com/wangwust/p/6386070.html
Copyright © 2011-2022 走看看