When I migrated KenHaggerty.Com I encountered a couple of issues, both involved the predicate in a LINQ query where clause. I was probably not using best practices as described in EF Core - Client vs. Server Evaluation, but they did not throw exceptions in ASP.NET Core 2.2 and Entity Framework Core 2.1.
The first issue was caused by casting an entity’s Enum property instead of the parameter. When MessageType is an Enum and messageTypeInt is an integer, Where(p => (int)p.MessageType == messageTypeInt) throws an exception but Where(p => p.MessageType == (MessageType)messageTypeInt) does not.
The second issue was caused by using a contains method on a populated IList<string> variable. I was using a function to return a list of article ids associated with a keyword tag. The exception stated “The LINQ expression 'Where<Article>(source: DbSet<Article>, predicate: (a) => (Unhandled parameter: __articleIds_0).Contains(a.Id))' could not be translated.” The remedy was updating the function to return List<string>.
You can find more breaking changes at Breaking changes included in EF Core 3.0.