Entity framework 实体框架或SqlDataReader

Entity framework 实体框架或SqlDataReader,entity-framework,sqldatareader,Entity Framework,Sqldatareader,我很感激有一两个类似的问题,但我们已经过去几年了,我知道英孚的速度和总体表现已经提高,所以这些可能已经过时了。 我正在编写一个新的Web服务来取代旧的Web服务。复制现有功能只需执行少量数据库操作。这些是: 调用现有存储过程以获取数据(2) 将SQL发送到要执行的数据库(应该是我知道的存储过程)(5) 更新记录(2) 插入记录(1) 总共有10次行动。数据库非常庞大,但我只直接处理3个表(存储过程执行一些复杂的连接)。 在获取数据时,我构建了一个对象数组(例如雇员),然后由web服务返回 根据我

我很感激有一两个类似的问题,但我们已经过去几年了,我知道英孚的速度和总体表现已经提高,所以这些可能已经过时了。 我正在编写一个新的Web服务来取代旧的Web服务。复制现有功能只需执行少量数据库操作。这些是:

  • 调用现有存储过程以获取数据(2)
  • 将SQL发送到要执行的数据库(应该是我知道的存储过程)(5)
  • 更新记录(2)
  • 插入记录(1)
  • 总共有10次行动。数据库非常庞大,但我只直接处理3个表(存储过程执行一些复杂的连接)。 在获取数据时,我构建了一个对象数组(例如雇员),然后由web服务返回


    根据我使用Entity Framework的经验,由于我对数据没有做任何巧妙的处理,我认为EF不是适合我的工具,而SqlDataReader更好(我想它会更轻、更快)。

    Entity Framework主要关注开发人员的生产力-易于使用,做事容易

    EF确实在“原始”ADO.NET之上添加了一些抽象层。它不是为大规模批量操作而设计的,而且它将比“原始”ADO.NET慢

    使用
    SqlDataReader
    会更快,但也需要更多(开发人员)的工作

    选择对你来说更重要的一个——快速、轻松地完成任务(作为开发人员),或者通过“艰难的方式”实现最高速度


    这个“问题”真的没有好的“单一答案”。。。为手头的工作选择正确的工具/方法并使用它。

    @marc_说了我的话。我喜欢你。网络服务的速度真的很快。此外,因为没有太多的事情要做(正如我所说,10个操作),所以不应该花费太长时间。因此,对于美国开发人员来说,更多的工作对于性能的提高是一个很好的折衷。@VictorySaber如果性能是关键,那么请看看在更新过程中使用(例如与)以及批量插入。根据数据的性质,还可以使用线程或TPL执行并发插入/更新操作。