首页 问答 如何彻底关闭 EF Core 的实体状态跟踪
问题详情

在 CQRS 的实现场景中,想针对 Query 使用专门的 readonly DBContext,请问如何彻底关闭 EF Core 的实体状态跟踪?

回答

设置 QueryTrackingBehavior.NoTracking 即可,有两种设置方法

方法1:在向依赖注入容器注册 DbContext 时设置

services.AddDbContextPool<ReadOnlyDbContext>(
    options =>
    {
        options.UseSqlServer(GlobalSettings.ConnectionString);
        options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
    });

方法2:在 DbContext 的构造函数中设置

public class ReadOnlyDbContext : DbContext
{
    public ReadOnlyDbContext(DbContextOptions<ReadOnlyDbContext> options)
        : base(options)
    {
        ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
    }
}

版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/2522.html

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

70068002

客服电话

400-888-8888

客服邮箱

70068002@qq.com

扫描二维码

关注微信公众号

扫描二维码

手机访问本站