【问题标题】:foreignkey relationships not appear in edmx with mysql database with asp mvc with database first外键关系没有出现在 edmx 与 mysql 数据库与 asp mvc 与数据库第一
【发布时间】: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


【解决方案1】:

在 MySQL 中创建 FK 键:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
); 

【讨论】:

  • 谢谢,问题在于创建 fk 而不是在代码或 edmx 中,最好的问候
【解决方案2】:

在您的表中的 sql 对象资源管理器中,您是否引用了您的外键 ex : 外键 ([Milstone_Id]) 引用 [db].[您的表带有 PK_ID 此处 Milistone] (["您的 FK 名称" Milstone_Id])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-19
    • 2012-09-03
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多