首页 > 解决方案 > 在 EFCore 中关闭全局过滤器警告

问题描述

我对我的一个实体有一个过滤器

 entity.HasQueryFilter(x => !x.IsDeleted);

我在日志中不断收到以下警告,我想关闭这些警告

实体 '"Event"' 定义了一个全局查询过滤器,并且是与实体 '"EventCategory"' 的关系的必需端。当所需的实体被过滤掉时,这可能会导致意外的结果。将导航配置为可选,或者为导航中的两个实体定义匹配的查询过滤器。有关详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=2131316

标签: entity-frameworkentity-framework-core

解决方案


如果您确定您的实体配置是正确的并且想要关闭该特定警告,您可以使用该DbContextOptionsBuilder.ConfigureWarnings方法。

假设您注册DbContextusing IServiceCollection

using Microsoft.EntityFrameworkCore.Diagnostics;

services.AddDbContext<MyDbContext>(options =>
{
    // Other configuration here...

    options.ConfigureWarnings(builder =>
    {
        builder.Ignore(CoreEventId.PossibleIncorrectRequiredNavigationWithQueryFilterInteractionWarning);
    });
});

请注意,这将使所有此类警告静音。


推荐阅读