Próbuję zmapować sobie relację wiele do wielu wg tego tutoriala:
Mam takie klasy:
public class User
{
public Guid Id { get; protected set; }
public IList<UserRole> UserRoles { get; set; }
public User()
{
}
}
public class Role
{
public Guid Id { get; set; }
public string Name { get; set; }
public IList<UserRole> UserRoles { get; set; }
public Role()
{
}
}
public class UserRole
{
public Guid UserId { get; set; }
public User User { get; set; }
public Guid RoleId { get; set; }
public Role Role { get; set; }
}
Dodałem mapowanie:
modelBuilder.Entity<UserRole>()
.HasKey(ur => new { ur.UserId, ur.RoleId });
modelBuilder.Entity<UserRole>()
.HasOne(ur => ur.User)
.WithMany(u => u.UserRoles)
.HasForeignKey(ur => ur.UserId);
modelBuilder.Entity<UserRole>()
.HasOne(ur => ur.Role)
.WithMany(r => r.UserRoles)
.HasForeignKey(ur => ur.RoleId);
i teraz przy wyciąganiu z bazy:
var userRole = _dbContext.UserRoles.First();
var user = _dbContext.Users.First();
a) Obiekt userRole ma poprawnie wypełnione pola RoleId i UserId ale pola User i Role są null.
b) Obiekt user ma pole UserRoles równe null.
Co robię źle?