Using Linq syntax, how can I remove the select n+1 issue in this method?
I think this might work for you

void EnsureIdentifiersAreNotInUse(AddOrEditClientCommand request)
{
    var identifiers = request.Editor.Identifiers;

    var errors = 
        dbContext.ClientIdentifers
            .Where(ci =&gt; ci.Client.Id != request.Editor.ClientId
                   &amp;&amp; identifiers.Any(i =&gt; ci.ClientIdentifierType.Id == i.TypeId
                                      &amp;&amp; ci.Value.Equals(i.Value, StringComparison.InvariantCultureIgnoreCase)));
}


UPD
Ok, your identifier type is not presented at db, so the query cannot be converted to a db query.

Let's try this:

void EnsureIdentifiersAreNotInUse(AddOrEditClientCommand request)
{
    var identifiers = request.Editor.Identifiers;
    var identifiersIds = identifiers.Select(i =&gt; i.TypeId).ToList();
    var identifiersValues = identifiers.Select(i =&gt; i.Value).ToList();

    var errors = 
        dbContext.ClientIdentifers
            .Where(ci =&gt; 
                   {
                       if (ci.Client.Id == request.Editor.ClientId)
                       {
                           return false;
                       }
                       var indexOfId = identifiersIds.IndexOf(ci.ClientIdentifierType.Id);
                       if (indexOfId == -1)
                       {
                           return false;
                       }
                       return indexOfId == identifiersValues.IndexOf(ci.Value);
                   });                       
}