【发布时间】:2016-07-16 02:35:58
【问题描述】:
所以这是一个新的错误,我刚刚开始出现,我不知道为什么。当我尝试通过 EF6 添加表时,任何不可为空的字段都会出现以下错误。在我能够添加的表上,如果我以 XML 格式打开 edmx 文件,我可以看到 StorageSection 中每个表的 [Key] 部分包含表中的每个字段。所以这显然是某个地方的错误,但我不确定在哪里。
我做了以下事情: - 在 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:\Users\Kevin\Documents\Visual Studio 2015\Projects\HRSMonitor\HRSMonitor\Models\dbHRS.edmx
这是 aspnetusers 表的创建表脚本:
'aspnetusers', 'CREATE TABLE aspnetusers (Id varchar(128) NOT NULL, Email varchar(256) DEFAULT NULL, EmailConfirmed tinyint(4) DEFAULT NULL, PasswordHash varchar(21000) ) 默认空值,SecurityStamp varchar(21000) 默认空值,PhoneNumbervarchar(21000) 默认空值,PhoneNumberConfirmed tinyint(1) 默认空值,TwoFactorEnabledtinyint(1) 默认空值,LockOutEndDateUtc 日期时间空值, LockoutEnabled bit(1) DEFAULT NULL, AccessFailedCount int(11) DEFAULT NULL, UserName varchar(256) NOT NULL, 主键 (Id), 键 Id (Id)) 引擎=InnoDB 默认字符集=latin1'
任何想法将不胜感激。
【问题讨论】:
-
您是否已经创建了此表?含义(您的问题含糊不清)该表在物理上是否已经存在?
-
是的,表已经创建好了。这是针对模型优先的设计。
-
show create table theTableName;edit 发布它来提问(即:不要在下面的评论中倾倒它)