【问题标题】:EfCore REST-API: For stateless application, should query always be AsNoTrackingEfCore REST-API:对于无状态应用程序,查询应始终为 AsNoTracking
【发布时间】:2020-01-05 20:39:24
【问题描述】:

REST 是无状态的,EfCore 在查询时默认附加实体。我相信 EfCore 在没有轨道的情况下表现更好。

在 web-api 中,对于任何 Http_Get,我使用 dbContext.Set<TEntity>().AsNoTracking(); 来获取 IQueryable 而不是 dbContext.Set<TEntity>().AsQueryable();。 但是在某些情况下我必须跟踪实体,例如更新断开连接的实体时。

对所有 Http_GET 请求进行无跟踪查询是一种好方法吗?

【问题讨论】:

    标签: rest asp.net-core ef-core-3.1


    【解决方案1】:

    是的,将.AsNoTracking() 用于只读查询是一种很好的方法。

    看到这个documentation entry

    当结果用于只读方案时,没有跟踪查询是有用的。它们执行速度更快,因为无需设置更改跟踪信息。如果您不需要更新从数据库中检索到的实体,则应使用无跟踪查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-20
      • 2012-09-26
      • 2012-07-18
      • 2012-02-09
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多