Как добавить ключ foregin в таблицу aspnetroles в первом подходе к коду EF Core? - PullRequest
0 голосов
/ 04 апреля 2019

Я создал пример приложения в ASP.NET Core с аутентификацией. Создано несколько таблиц, и приложение работает хорошо.

Теперь мне нужно создать новую таблицу "Организации". Эта таблица должна быть связана с таблицей по умолчанию "AspNetRoles" ключом foregin в отношении один ко многим. Каждая роль может иметь много связанных организаций. Проблема в том, что я не могу найти эти таблицы по умолчанию в своем приложении и не знаю, как создать внешний ключ, используя код вначале. Я пробовал что-то вроде этого:

public class Organization
{
   public int OrganizationId {get; set;}

   [ForeginKey="AspNetRoles"]
   public int RoleId {get; set;}

}

Справка.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Если у вас есть свойство навигации к связанному объекту, просто назовите соответствующий ключ так же, как и свойство навигации, за которым следует Id или ID, и EF автоматически распознает его как внешний ключ для связанного объекта (например, Role-RoleId).

public string RoleId { get; set; }
public IdentityRole Role { get; set; }

вы можете узнать больше о соглашениях об именах в EF Code Сначала здесь

дополнительно вот хороший учебник по сложным моделям данных

1 голос
/ 04 апреля 2019

Наконец-то я выясняю, как этого добиться.

public virtual string RoleId { get; set; }

[ForeignKey("RoleId")]
public virtual IdentityRole Roles { get;set; }

AspNetRoles называется IdentityRole.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...