问题详情
在 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
还没有评论呢,快来抢沙发~