using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using Microsoft.Data.SqlClient;
public static void Main()
using (var context = new EntityContext())
context.Database.EnsureCreated();
var child = new BrokenFilterChildEntity { BrokenFilterParentEntity = new BrokenFilterParentEntity() };
context.Set<BrokenFilterChildEntity>().UpdateFromQuery(x => new BrokenFilterChildEntity { Value = x.Value + 1 });
private class BrokenFilterParentEntity
public int BrokenFilterParentEntityId { get; set; }
public List<BrokenFilterChildEntity> BrokenFilterChildEntities { get; set; }
public bool IsFiltered { get; set; }
private class BrokenFilterChildEntity
public int BrokenFilterChildEntityId { get; set; }
public int Value { get; set; }
public int BrokenFilterParentEntityId { get; set; }
public BrokenFilterParentEntity BrokenFilterParentEntity { get; set; }
public class EntityContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()));
base.OnConfiguring(optionsBuilder);
protected override void OnModelCreating(ModelBuilder modelBuilder)
modelBuilder.Entity<BrokenFilterParentEntity>().HasQueryFilter(x=>!x.IsFiltered);
modelBuilder.Entity<BrokenFilterChildEntity>().HasQueryFilter(x => !x.BrokenFilterParentEntity.IsFiltered);
base.OnModelCreating(modelBuilder);