【发布时间】:2019-11-05 11:57:20
【问题描述】:
我已经将我的asp.net MVC应用程序与MySQL数据库连接起来,并在edmx中包含了所有的表,但是在设计器中没有出现任何关系,如图所示:
我尝试在管理块页面版本中更改实体框架和 MySQL ddls,但没有与我合作
数据库创建查询:
年度里程碑表:
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
【问题讨论】:
-
您是否在数据库中创建了任何外键?向我们展示您的创建表语句
-
是的,我创建了关系,请检查更新后的问题
-
MyISAM 对外键(或事务和其他有用的东西)没有适当的支持。这是一项遗留技术,很长时间以来都不是 mySQL 的默认设置。它甚至可能在未来被完全删除。改用 innoDB 表引擎
-
谢谢亲爱的,我已将所有表更改为 innoDB ,但仍然是同样的问题,请提供更多建议
-
您更改表引擎后是否返回并正确重新创建所有外键?
标签: c# mysql asp.net model-view-controller edmx