2016-07-16 80 views
0

所以這是一個新的錯誤,剛開始對我來說,我不知道爲什麼。當我嘗試通過EF6添加表格時,在任何不可空的字段上出現以下錯誤。在我已經能夠添加的表上,如果我用XML打開edmx文件,我可以看到StorageSection中每個表的[Key]部分包含表中的每個字段。所以這顯然是一個錯誤,但我不確定它在哪裏。EF6 MySql - 密鑰的所有部分必須是不可空的

我已經做了以下內容: - 雙檢查了我的數據模型,在MySQL(使用版本5.7.7) - 卸載並重新安裝的Visual Studio 2015年 - 卸載並重新安裝實體框架(版本6.1.3) - 使用Devart dotConnect MySql Pro試用版(版本8.6.677.0) - 雙擊所有web.config選項以確保它們是正確的。

示例錯誤: 錯誤13101:類型'aspnetusers'的關鍵部分'LockOutEndDateUtc'無效。密鑰的所有部分必須是不可空的。 HRSMonitor C:\用戶\凱文\文檔\ Visual Studio的2015年\項目\ HRSMonitor \ HRSMonitor \型號\ dbHRS.edmx

下面是該aspnetusers表的CREATE TABLE腳本:

'aspnetusers',「CREATE TABLE aspnetusersId VARCHAR(128)NOT NULL,Email VARCHAR(256)DEFAULT NULL,EmailConfirmed TINYINT(4)DEFAULT NULL,PasswordHash VARCHAR(21000)DEFAULT NULL,SecurityStamp VARCHAR(21000)DEFAULT NULL,PhoneNumber VARCHAR(21000)DEFAULT NULL, PhoneNumberConfirmed TINYINT(1)DEFAULT NULL,TwoFactorEnabled TINYINT(1)DEFAULT NULL,LockOutEndDateUtc日期時間DEFAULT NULL,LockoutEnabled位(1)DEFA ULT NULL,AccessFailedCount INT(11)DEFAULT NULL,UserName VARCHAR(256)NOT NULL,PRIMARY KEY(Id),KEY IdId))ENGINE = InnoDB的默認字符集= latin1' 的

任何想法將不勝感激。

+0

您是否已經創建了此表?意義(你的問題是模糊的)桌子是否已經存在? – Drew

+0

是的,表已經創建。這是模型優先設計。 –

+0

'show create table theTableName;'< - 運行它,用一個[編輯]發佈它來提問(即:不要將它轉儲到這裏的註釋中) – Drew

回答

0

找到我的問題,在MySQL中,下面的語句需要運行,然後EF6合作:

設置全局optimizer_switch = 'derived_merge =關閉'; set optimizer_switch ='derived_merge = off';

相關問題