Unfortunately, there’s a little bit of a bad decision there for choosing to use a technology that is virtually abandoned (perhaps choice of course). Nothing critical because it is something for a course and the project will be abandoned (I think), but at the same time it is learning from something that has no future. It would be better to have used Entity Framework Core.
Yes, the FE requires that you have a primary key precisely because almost every table should have and it needs to have "where to hold on to". And in fact every table in a database has a PK, in some cases it’s invisible to you because your model might not require it, and then you think you don’t have one. But also almost always not having an explicit primary key indicates a wrong modeling. Why don’t you need one? Do you know the consequences of this? If you don’t know how to answer this then you should at least use the default which is to have a PK. It is not ideal because every decision must be justified, but the chance of making mistakes decreases since not having PK is a very exceptional case.
I say more, almost always the proper key is a substitute, which is used by SGDB if none is provided by you. It is very rare for a natural to be adequate, because even if it seems, one day it may not be more and then you will have work tidying up everything. The same reason you use a surrogate is what it takes to have an explicit PK.
There are no absolute answers to these things. I know that almost everyone wants to believe that they have, that it is enough to memorize a rule and always do what will be right, but the only right thing is to understand the fundamentals, know the reasons for each thing, and then make decisions according to that knowledge. Nowadays a lot of the problems of software (especially those that do not seem to be problems because they work, although it is not right) is because the decisions were taken on the basis of an automatic rule and not on the basis of grounds and considering the specific case that is being solved.
The doubt is only conceptual because there is no concrete case.