我的一个实体上有一个过滤器
entity.HasQueryFilter(x => !x.IsDeleted);
我在日志中不断收到以下警告,我喜欢关闭
实体";事件"具有定义的全局查询过滤器,并且是与实体"的关系的必需末端;事件类别"。当筛选出所需的实体时,这可能会导致意外的结果。将导航配置为可选,或者为导航中的两个实体定义匹配的查询筛选器。看见https://go.microsoft.com/fwlink/?linkid=2131316了解更多信息。
如果您确信您的实体配置是正确的,并且希望关闭该特定警告,则可以使用DbContextOptionsBuilder.ConfigureWarnings
方法。
假设您使用IServiceCollection
:注册DbContext
using Microsoft.EntityFrameworkCore.Diagnostics;
services.AddDbContext<MyDbContext>(options =>
{
// Other configuration here...
options.ConfigureWarnings(builder =>
{
builder.Ignore(CoreEventId.PossibleIncorrectRequiredNavigationWithQueryFilterInteractionWarning);
});
});
请注意,这将使所有此类警告静音。
modelBuilder.Entity<EventCategory>()
.HasQueryFilter(t => !t.Event.IsDeleted);
您应该从与事件相关的所有实体中筛选它