1) EF Core 5 works with .NET Framework 5.0 that is a Core .NET Framework. .NET 5 is Core.
2) You can use ASP.NET WebAPI 2 using .NET 4.5.2 that will work with EF 6.
3) This time, you can use a classlib project to hold the DTO(s) that is using .NET 4.5.2, and you should leave the DTO(s) at the WebAPI as discussed in the EF Core forum.
You should try to implement seperation of concerns with the WebAPI referencing the DAL using the DTO and DAO patterns for CRUD operations with EF.
Here is a solution out on Github that is using a .NET 4.x framework, WebAPI 2, EF 6 database first and DTO and DAO patterns, but it is was done in VB.NET.
As couple of other things about logging in WebAPI, which is being shown in the which is also be shown in the code example in the EF Core forum concerning the shown project code.
DI is being used in both solutions being shown in the two forums.