EF Core HasQueryFilter при включении () - PullRequest
0 голосов
/ 14 октября 2018

Я немного запутался, если метод HasQueryFilter должен работать с объектами, которые объединены методом Include().

Из этой (старой) статьи они утверждают следующее: https://blogs.msdn.microsoft.com/dotnet/2017/05/12/announcing-ef-core-2-0-preview-1/

Фильтры применяются автоматически, когда запросы извлекают данные определенных типов напрямую, а также через свойства навигации, например, с использованием метода Include () .

В моем классе DbContext есть следующее:

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.Entity<Post>().HasQueryFilter(x => x.Removed == null);
}

Если я затем выполню следующее, тогда он также извлекает все записи Posts, где Removed равно not null.

// Doesn't apply the query filter because of the Include()
var blog = _dbContext.Blogs.Include(x => x.Posts).Where(x => x.Id == 100);

Если я запрашиваю Post напрямую, то HasQuerFilter выполняет свою работу.

// Here query filter works, because of query directly on Entity
var posts = _dbContext.Posts.ToList();

Так правильно ли, чтоэта функция не работает (пока?) на объектах, которые объединяются с использованием Include()?Или я что-то затуманиваю?

...