zoukankan      html  css  js  c++  java
  • Enity Framework已经是.NET下最主要的ORM了

    Enity Framework已经是.NET下最主要的ORM了。而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的升华。切实地说,就是ORM让数据库在整个应用过程中更好地被封装和抽象化。

    ORM一开始只是Mapping,最基础的就是表与类的对应、Column和属性的对应,这只是最基础的。在这个层次上,数据库对象通过Mapping在面向对象语言层面,也就是业务层面被封装成了业务对象,然后允许以操作业务对象的方式对数据库进行操作。

    但是,在很长时间里,ORM的提升都被对象与关系间的“阻抗失配”困扰。一直以来很多ORM的水平都只是维持在了用对象的方式进行CRUD而已,除了减少代码错误、提高简单查询的开发效率,在复杂查询、性能等等一些方面结果都还是要跨层回到底层的操作框架比如甚至存储过程去解决问题。

    所以,在应用场景上来说简单查询的场景EF和其他ORM都是能够胜任的。

    终上所述,EF适用于面向对象结构和特性优先性比较高的 场景。
    那么相对地,也说说不适用的场景。
    首先大家所诟病的是性能问题,这点希望不要抛开原理去说EF的性能
    EF由于其执行原理,性能损耗一般发生在:

      1. LINQ也就是Expression Tree创建和转换成SQL的过程
      2. 缓存比对的过程
      3. 特殊操作实现不合理
      4. 极限性能压力下的问题
      5. 性能泄露
  • 相关阅读:
    类成员函数的重载、覆盖和隐藏区别 (C++)(转)
    man时括号里的数字是啥意思
    Redis事务
    功能接口
    持久化方式
    宿主
    路由
    静态文件
    Log4Net 配置
    Redis命令与配置
  • 原文地址:https://www.cnblogs.com/DTWolf/p/4691397.html
Copyright © 2011-2022 走看看