Yeah it is pretty bad. Even using the Upgrade Assistant won't help here. There is no way to mix EF and EFCore together in a single project. You can't even conditionally compile for one vs the other easily because of all the namespaces and related changes.
The general recommendation is to multi-target your projects that can be multi-targeted. Have them target NET Framework (whatever version you need) + NET8. This is generally doable with all the middle layers of your app minus the UX and EF stuff. You may need to break your projects apart but the goal is to move all the EF-specific stuff into its own project. If you're using interfaces/base classes to isolate your code (as you should be) then this isn't too hard. Once you have your EF-logic isolated then things get easier.
Since your app should now be targeting interfaces/base classes then you can create a new EFCore project that mimics your existing EF project. Bring across the code and adjust it to work with EFCore. There are some pretty big differences so this can be painful and some things just may not work. However once you have a project for each version you can now build a new NET8 app that relies on all your existing projects that are multi-targeted + EFCore project whereas your NF app continues to use those same existing projects + EF project. It really ends up being an app startup problem at this point. Once you have finished migrating all your functionality into your new NET8 app then you can remove the old EF project and stop multi-targeting which will allow you to start taking advantage of the newer features. To me this is the biggest pain for multi-targeting, you cannot use the nicer C# features because NF projects don't allow them.
Finally, if you have a web app AND you need to be able to migrate from NF to NET8 slowly then you can use YARP. That is what the Upgrade Assistant does. It sets up a new NET8 web app and then you move your controllers/views/etc across one by one as you are ready to port them. It is the new app that you point everyone to and the old app has to be running somewhere as well. Any requests the new app doesn't recognize it forwards to the old app. Hence you can migrate a web app as you go along. However it introduces its own problems, doesn't work with Windows auth, requires yet another site to be hosted, and can prolong the migration. It is a decision you have to make. Honestly moving from ASPNET MVC to ASPNET Core, outside startup, isn't particularly difficult and mostly works the same way so it is pretty easy to move everything. Of course if you have a client-side framework setup with bundling or complex customizations with handlers then it'll be harder to do.