У меня есть две таблицы 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'.
Что мне делать?