Даже опытные разработчики с треском провалились, когда речь идет о Entity Framework, так что я дам вам маленький секрет. Напиши код, который у вас был.
Что касается непосредственно вашего сценария, вы излишне усложняете вещи без необходимости. Пусть Entity Framework выполняет свою работу и обрабатывает отношения для вас!
Все вы должны смоделировать эти отношения ...
public class Allocation
{
public int Id { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class User
{
public int Id { get; set; }
public virtual Allocation Allocation { get; set; }
}
Теперь обратите внимание, что я НЕ писать код, который я хотел бы я, но это потому, что код, который я хотел бы я был overkill для этого вопроса, и очень высокого уровня. Если вы хотите, однако, углубляться в эту тему и выяснить, что Entity Framework действительно может сделать для вас, я хотел бы начать здесь ...
https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/