我正在使用Entity Framework 6.0連接到我的C#項目中的MySQL數據庫。我在現有的表格中添加了一個新列,並更新了我的edmx模型。但是,由於某些原因,該列沒有顯示在edmx圖表中,甚至沒有顯示在表格的.cs文件中。實體框架數據庫第一列未在模型中顯示
要調試這個我嘗試以下...
1)刪除整個圖,清理項目,然後更新從數據庫模型,然後重新添加的所有表。
2)刪除整個.edmx文件,清理項目,並重新添加一個新的實體數據模型到我的項目。
3)從一個新鮮的C#項目開始。
4)刪除整個.edmx文件,刪除整個數據庫模式並重新創建它,然後重新添加一個新的實體數據模型。
5)創建具有不同名稱的新數據庫模式並連接到新模式。
但是,所有這些都導致了相同的結果 - 該列沒有顯示在我的edmx文件中。我不明白爲什麼它沒有顯示(特別是因爲我嘗試從一個新的新項目開始......)。我嘗試將列添加到其他表並更新模型,並顯示新列。只是這一張桌子的模型無法正常工作。
這是創建表的SQL腳本。
DROP TABLE IF EXISTS part_revision;
CREATE TABLE part_revision (
`id` SMALLINT UNSIGNED NOT NULL UNIQUE AUTO_INCREMENT,
`part_id` SMALLINT UNSIGNED NOT NULL,
`name` VARCHAR(75) NOT NULL,
`actual_gross` SMALLINT UNSIGNED NOT NULL,
`upper_specification_limit` DECIMAL(11 , 6) UNSIGNED NOT NULL,
`lower_specification_limit` DECIMAL(11 , 6) UNSIGNED NOT NULL,
`control_plan_id` SMALLINT UNSIGNED DEFAULT NULL,
`quality_plan_id` SMALLINT UNSIGNED DEFAULT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id` , `part_id`),
FOREIGN KEY (`part_id`)
REFERENCES part (`id`),
FOREIGN KEY (`control_plan_id`)
REFERENCES control_plan (`id`),
FOREIGN KEY (`quality_plan_id`)
REFERENCES quality_plan (`id`)
);
新列是upper_specification_limit和lower_specification_limit。
以下是從新建項目中生成的生成模型和.cs文件。
namespace CBM1_HMI
{
using System;
using System.Collections.Generic;
public partial class part_revision
{
public int id { get; set; }
public int part_id { get; set; }
public string name { get; set; }
public int actual_gross { get; set; }
public Nullable<int> control_plan_id { get; set; }
public Nullable<int> quality_plan_id { get; set; }
public Nullable<System.DateTime> created_at { get; set; }
public Nullable<System.DateTime> updated_at { get; set; }
public virtual control_plan control_plan { get; set; }
public virtual part part { get; set; }
public virtual quality_plan quality_plan { get; set; }
}
}
[更新]我試着重新創建一個不同的名稱數據庫模式。然而,結果是相同的,所以我現在認爲我的數據庫有問題......但我不確定會出現什麼問題,因爲只有這個表有問題。我有另一個具有相同數據類型的列(DECIMAL(11,6)UNSIGNED NOT NULL),它工作正常。我讀過舊版本的實體框架沒有顯示外鍵列。即使這不是固定的,但這是一個正常的列而不是外鍵。
試圖向我的表中添加一個新列並更新模型,新列出現(如下所示),但upper_specification_limit和lower_specification_limit列仍然丟失。我現在更加迷失了。
[UPDATE3]想要刪除的列,更新EDMX模型,然後重新添加的列。同樣的結果。一些原因實體框架只是討厭名稱「upper_specification_limit」和「lower_specification_limit」或東西....