Вы можете использовать InversePropertyAttribute или методы конфигурации Fluent API HasOne
/ WithOne
или HasOne/WithMany
с соответствующими селекторами свойств.
Если вы ищете 1: 1 отношение, используйте первичный ключ осколка - сделайте PK для UserProfile FK для пользователя.
modelBuilder.Entity<UserProfile>()
.HasOne( up => up.User )
.WithOne( u => u.UserProfile )
.HasForeignKey( up => up.UserProfileId ); // I suggest renaming PK to UserId for clarity
Если отношение 1: N, два способа;сначала w / InversePropertyAttribute
:
public class User
{
...
[InverseProperty( "User" )]
public ICollection<UserProfile> UserProfiles { get; set; }
}
Или через Fluent API:
modelBuilder.Entity<UserProfile>()
.HasOne( up => up.User )
.WithMany( u => u.UserProfiles );