Entity Framework foriegn ключ для существующего столбца таблицы
У меня есть следующая таблица в моей базе данных
Компания
- resourceId (уникальный идентификатор)
- имя (nvarchar(50))
У меня есть следующая сущность пользователя в моем приложении
public class ApplicationUser : IdentityUser
{
public String FirstName { get; set; }
public String Surname { get; set; }
public Guid CompanyId { get; set; }
}
и класс конфигурации
public class ApplicationUserMap : EntityTypeConfiguration<ApplicationUser>
{
public ApplicationUserMap()
{
}
}
Используя fluentapi, как я могу сопоставить внешний ключ от CompanyId в приложении пользователя с моей существующей таблицей resourceid?
1 ответ
Решение
Вы не можете сделать это, если Company
не входит в вашу модель.
Вы можете создать связь только в БД, используя стандартное предложение T-SQL при инициализации БД (Seed()
) или в настраиваемой миграции (если вы используете миграции).
Команда будет выглядеть так:
alter table ApplicationUser
add constraint App_Company_FK FOREIGN KEY (CompanyId) references Company(CompanyId)
Чтобы запустить его в Seed
метод, переопределить наследуемое Seed()
метод и использовать любую из перегрузок Database.ExecuteSqlCommand:
context.Database.ExecuteSqlCommand( ... );