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( ... );
Другие вопросы по тегам