I'm trying to improve the performance of a query that uses linq and fluent API.
The query looks like this:
        var result = DbContext.Set<Parent>()
            .Join(DbContext.Set<Child>(),
                (parent) => parent.Id,
                (child) => child.ParentId,
                (parent, child) => cild)
            .Select(x => new { x.SomeOtherId, x.AnotherId })
            .Where(x => !filters.Contains(x.SomeOtherId))
            .Select(x => x.AnotherId )
            .Distinct()
            .ToListAsync(cancellationToken);
As I understand, .Contains degrades the performance of queries such as this and using a Join is better, e.g
.Join(filters, (c) => c.SomeOtherId, (filterId) => filterId, (c, filterId) => c.AnotherId);
This will give results where there is a match, however how would I find results where there is not a match?
Thanks
 
    