MySQL с EntityFramework Core - составной внешний ключ - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть две таблицы Project и ProjectMedia.они определены следующим образом:

CREATE TABLE `project` (
  `ID` int(11) NOT NULL,
  `LANG` char(2) NOT NULL,
  `NAME` varchar(64) CHARACTER SET utf8 DEFAULT NULL,
  `DESCS` varchar(2048) CHARACTER SET utf8 DEFAULT NULL,
  `SHORT_DESC` varchar(512) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`ID`,`LANG`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ID и LANG являются составным первичным ключом в таблице Project.

ProjectMedia определение таблицы:

CREATE TABLE `project_media` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `PATH` varchar(1024) DEFAULT NULL,
  `TYPE` char(1) DEFAULT NULL,
  `IS_LOCAL_FILE` bit(1) DEFAULT NULL,
  `PROJECT_ID` int(11) NOT NULL,
  `LANG` char(2) NOT NULL,
  PRIMARY KEY (`ID`),
  KEY `PROJECT_MEDIA_PROJECT_PROJECT_ID_LANG_idx` (`PROJECT_ID`,`LANG`),
  CONSTRAINT `PROJECT_MEDIA_PROJECT_PROJECT_ID_LANG` FOREIGN KEY (`PROJECT_ID`, `LANG`) REFERENCES `project` (`ID`, `LANG`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Я добавил два столбца в ProjectMedia PROJECT_ID и LANG, и я создал для них составной внешний ключ для ссылки на них в project table

, но когда я выполняю команду scaffold какследуйте: я получаю это сообщение

dotnet ef dbcontext scaffold "server=localhost;database=mydb;user=root;" "MySql.Data.EntityFrameworkCore" --output-dir "Persistence" --context "MyDbContext" --force

Не удалось восстановить внешний ключ 'mydb.project_media (PROJECT_ID)'.Ключ для «ID» не найден в основном типе сущности «Project».Не удалось очистить внешний ключ «mydb.project_media (LANG)».Ключ для 'LANG' не найден в основном типе сущности 'Project'.

Что мне делать?

...