所以这是一个新的错误,刚刚开始为我而来,我不知道为什么。当我尝试通过EF6添加表时,我在任何不可空的字段上都会出现以下错误。在我能够添加的表上,如果我用XML打开edmx文件,我可以看到StorageSection中每个表的[Key]部分包含表中的每个字段。所以这显然是某个地方的错误,但我不知道在哪里。
我做了以下事情: - 在MySql中双重检查我的数据模型(使用版本5.7.7) - 卸载并重新安装Visual Studio 2015 - 卸载并重新安装的Entity Framework(版本6.1.3) - 使用Devart dotConnect MySql Pro试用版(版本8.6.677.0) - 仔细检查所有web.config选项以确保它们是正确的。
示例错误: 错误13101:关键部分' LockOutEndDateUtc'对于类型' aspnetusers'无效。密钥的所有部分都必须是不可为空的。 HRSMonitor C:\ Users \ Kevin \ Documents \ Visual Studio 2015 \ Projects \ HRSMonitor \ HRSMonitor \ Models \ dbHRS.edmx
这是aspnetusers表的create table脚本:
' aspnetusers',' CREATE TABLE aspnetusers
(Id
varchar(128)NOT NULL,Email
varchar(256)DEFAULT NULL,{{ 1}} tinyint(4)DEFAULT NULL,EmailConfirmed
varchar(21000)DEFAULT NULL,PasswordHash
varchar(21000)DEFAULT NULL,SecurityStamp
varchar(21000)DEFAULT NULL,{{1} } tinyint(1)DEFAULT NULL,PhoneNumber
tinyint(1)DEFAULT NULL,PhoneNumberConfirmed
datetime DEFAULT NULL,TwoFactorEnabled
bit(1)DEFAULT NULL,LockOutEndDateUtc
int(11) DEFAULT NULL,LockoutEnabled
varchar(256)NOT NULL,PRIMARY KEY(AccessFailedCount
),KEY UserName
(Id
))ENGINE = InnoDB DEFAULT CHARSET = latin1&#39; < / p>
非常感谢任何想法。
答案 0 :(得分:0)
发现我的问题,在MySql中,需要运行以下语句,然后EF6合作:
设置global optimizer_switch =&#39; derived_merge = off&#39 ;; set optimizer_switch =&#39; derived_merge = off&#39;;