Как определить отношения с помощью Code First, но без использования каких-либо свойств навигации?
Ранее я определил One-Many и Many-Many, используя свойства навигации в обоих концах отношения.И соответствующие отношения создаются в базе данных.Вот урезанная версия того, как выглядят классы (для простоты я преобразовал отношения «многие-многие» в «один-многие»).
public class User
{
public string UserId { get; set; }
public string PasswordHash { get; set; }
public bool IsDisabled { get; set; }
public DateTime AccessExpiryDate { get; set; }
public bool MustChangePassword { get; set; }
public virtual Role Role { get; set; }
}
public class Role
{
public int RoleId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<User> Users { get; set; }
public virtual ICollection<Right> Rights { get; set; }
}
public class Right
{
public Guid RightId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual Role Role { get; set; }
}
Однако, если я удалю свойства навигации, отношения не будутсоздаетсяВот как будут выглядеть классы.
public class User
{
public string UserId { get; set; }
public string PasswordHash { get; set; }
public bool IsDisabled { get; set; }
public DateTime AccessExpiryDate { get; set; }
public bool MustChangePassword { get; set; }
public int Role RoleId { get; set; }
}
public class Role
{
public int RoleId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public class Right
{
public Guid RightId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int RoleId { get; set; }
}
обратите внимание, что вместо свойства навигации у меня есть первичный ключ связанной таблицы.Все создается на столе - кроме отношений.Итак, как мне это сделать?
Кстати, я пробовал различные комбинации в методе OnModelCreating dbcontext, но безрезультатно.Любая помощь очень ценится!
Спасибо, Мел