C# foreignkey关系不出现在edmx with mysql database with asp mvc with database first中
我已将我的asp.net MVC应用程序与MySQL数据库连接,并在edmx中包含所有表,但设计器中未显示任何关系,如图所示: 我试图在manage nuggets页面版本中更改实体框架和MySQL DDL,但没有与我合作C# foreignkey关系不出现在edmx with mysql database with asp mvc with database first中,c#,mysql,asp.net,model-view-controller,edmx,C#,Mysql,Asp.net,Model View Controller,Edmx,我已将我的asp.net MVC应用程序与MySQL数据库连接,并在edmx中包含所有表,但设计器中未显示任何关系,如图所示: 我试图在manage nuggets页面版本中更改实体框架和MySQL DDL,但没有与我合作 数据库创建查询: 年度石灰石表: CREATE TABLE `AnnualMilestone` ( `AnnalReport_Id` int(11) NOT NULL, `Milstone_Id` int(11) NOT NULL, `IsCompleted_Id`
数据库创建查询: 年度石灰石表:
CREATE TABLE `AnnualMilestone` (
`AnnalReport_Id` int(11) NOT NULL,
`Milstone_Id` int(11) NOT NULL,
`IsCompleted_Id` int(11) DEFAULT NULL,
`CompletionDate` date DEFAULT NULL,
`Justification` varchar(2000) DEFAULT NULL,
`NewDeadLine` date DEFAULT NULL,
`CreatedBy_Id` char(36) DEFAULT NULL,
`CreatedDate` datetime DEFAULT NULL,
`LastModifiedDate` datetime DEFAULT NULL,
`LastModifiedBy_Id` char(36) DEFAULT NULL,
PRIMARY KEY (`AnnalReport_Id`,`Milstone_Id`),
KEY `FK_ISCOMPLETED` (`IsCompleted_Id`),
KEY `FK_MILSTONE_ANNAUL` (`Milstone_Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
CREATE TABLE `AnnualReport` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Project_Id` int(11) DEFAULT NULL,
`ReportingYear` int(11) NOT NULL,
`SupportReceived` float NOT NULL,
`SupportSpentOnMitigation` float NOT NULL,
`IsCompleted_Id` int(11) DEFAULT NULL,
`Phase_Id` int(11) DEFAULT NULL,
`WorkFlowStatus_Id` int(11) DEFAULT NULL,
`LastModifiedBy_Id` char(36) DEFAULT NULL,
`LastModifiedDate` datetime DEFAULT NULL,
`CreatedDate` datetime DEFAULT NULL,
`CreatedBy_Id` char(36) DEFAULT NULL,
`IsWFCompleted_Id` int(11) DEFAULT NULL,
`MinistryAnnualReport_Id` int(11) DEFAULT NULL,
`StatusBeforeCancel` int(11) DEFAULT NULL,
PRIMARY KEY (`Id`),
KEY `FK_ANNUALPHASE` (`Phase_Id`),
KEY `FK_ANNUALWFSTATUS` (`WorkFlowStatus_Id`),
KEY `FK_STATUSBEFORECANCEL` (`StatusBeforeCancel`),
KEY `FK_WFCOMPLETED` (`IsWFCompleted_Id`),
KEY `FK_YESNO` (`IsCompleted_Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
年度报告表:
CREATE TABLE `AnnualMilestone` (
`AnnalReport_Id` int(11) NOT NULL,
`Milstone_Id` int(11) NOT NULL,
`IsCompleted_Id` int(11) DEFAULT NULL,
`CompletionDate` date DEFAULT NULL,
`Justification` varchar(2000) DEFAULT NULL,
`NewDeadLine` date DEFAULT NULL,
`CreatedBy_Id` char(36) DEFAULT NULL,
`CreatedDate` datetime DEFAULT NULL,
`LastModifiedDate` datetime DEFAULT NULL,
`LastModifiedBy_Id` char(36) DEFAULT NULL,
PRIMARY KEY (`AnnalReport_Id`,`Milstone_Id`),
KEY `FK_ISCOMPLETED` (`IsCompleted_Id`),
KEY `FK_MILSTONE_ANNAUL` (`Milstone_Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
CREATE TABLE `AnnualReport` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Project_Id` int(11) DEFAULT NULL,
`ReportingYear` int(11) NOT NULL,
`SupportReceived` float NOT NULL,
`SupportSpentOnMitigation` float NOT NULL,
`IsCompleted_Id` int(11) DEFAULT NULL,
`Phase_Id` int(11) DEFAULT NULL,
`WorkFlowStatus_Id` int(11) DEFAULT NULL,
`LastModifiedBy_Id` char(36) DEFAULT NULL,
`LastModifiedDate` datetime DEFAULT NULL,
`CreatedDate` datetime DEFAULT NULL,
`CreatedBy_Id` char(36) DEFAULT NULL,
`IsWFCompleted_Id` int(11) DEFAULT NULL,
`MinistryAnnualReport_Id` int(11) DEFAULT NULL,
`StatusBeforeCancel` int(11) DEFAULT NULL,
PRIMARY KEY (`Id`),
KEY `FK_ANNUALPHASE` (`Phase_Id`),
KEY `FK_ANNUALWFSTATUS` (`WorkFlowStatus_Id`),
KEY `FK_STATUSBEFORECANCEL` (`StatusBeforeCancel`),
KEY `FK_WFCOMPLETED` (`IsWFCompleted_Id`),
KEY `FK_YESNO` (`IsCompleted_Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
在表中的sql对象资源管理器中,是否引用了外键 例如:外键([Milstone_Id])引用[db]。[Milstone这里有PK_Id的表]([“你的FK的名字”这里是“Milstone_Id”))
在MySQL中创建FK密钥:
CREATE TABLE Orders (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
您是否在数据库中创建了外键?显示您的create table语句如果我创建了关系,请检查更新的问题YISAM不支持外键(或事务和其他有用的东西)。这是一项遗留技术,很长一段时间以来都不是mySQL的默认技术。它甚至可能在将来被完全移除。改用innoDB表引擎谢谢亲爱的,我已将所有表改为innoDB,但仍然存在相同的问题,请提供更多建议更改表引擎后,您是否返回并正确重新创建所有外键?谢谢,问题在于创建fk,而不是代码或edmx中的fk,敬请谅解