Как сделать первичный ключ из 2 внешних ключей в MySql EFCore - PullRequest
0 голосов
/ 28 июня 2018

У меня возникли проблемы с созданием первичного ключа из двух ключей foregin

примеры моделей: Element, Color, ElementToColor

ElementToColor должен содержать 2 передних ключа, которые представляют отношение Элемент и Цвет

[Key,Column(Order = 1)]
public Int ElementId {get; set;} 

[Key,Column(Order = 2)]
public Int ColorId {get; set;} 

но когда я пытаюсь добавить миграцию, это не удается

ElementToColor должен иметь первичный ключ

но делать первичный ключ для этого короля таблицы сопоставления неправильно, это приведет к дублированию данных

1,1,1

2,1,1

...

что мне делать в этом случае

Я использую:

приложение: asp.net core 2.1 webApi

база данных: MySql

ORM: MySql EFCore

1 Ответ

0 голосов
/ 28 июня 2018

нашел его, мне нужно было использовать свободный API:

в ApplicationDbContext я должен переопределить метод OnModelCreating следующим образом:

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<ElementToColor>().HasKey(e => new { e.ElementId, e.ColorId }
    );
...