That's unfortunate, but what Microsoft introduces isn't always our problem to solve, please do realize that. Also, please do realize that although microsoft released .net 10 yesterday, the only IDE that works with it is Rider, so please don't expect us to support .NET 10 right away (I mean, their own IDE team couldn't be bothered). We did evaluate .NET 10 from the documentation and didn't see any breaking changes we should address, as this one is unexpected.
Looking into this, the string array is arriving at the Contains() handler as an in-memory evaluation expression, which tells our handler to evaluate it on the spot as it's an object to be pulled into the query. This is in both .net 9 and .net 10 the case.
In .net 9 and earlier, it's a Constant expression with as value the string[]constant, however in .net 10 it's a ConvertExpression which tries to convert the string[] to a ReadOnlySpan. As this is unexpected, the handler fails. Contains can be present on a lot of objects so we built-in code paths for the ones which we can understand.
This is rather easy to fix however, we can simply remove the Convert expression and obtain the constant expression which is the array and this works fine. However I fear in other places this might still cause issues. We'll see if we can run our tests on .net 10 and see if things break somewhere. We'll then release a hotfix build.