So this is a new error that just start coming up for me and I'm not sure why. When I try to add a table through EF6, I get the following errors on any fields that are non-nullable. On tables that I have been able to add, if I open the edmx file in XML, I can see that the [Key] section for each table in the StorageSection contains every field in the table. So this is clearly a bug somewhere, but I'm not sure where.
I've done the following: - Double-checked my data model in MySql (using version 5.7.7) - Uninstalled and reinstalled Visual Studio 2015 - Uninstalled and reinstalled Entity Framework (version 6.1.3) - Using the Devart dotConnect MySql Pro Trial (version 8.6.677.0) - Double-checked all web.config options to make sure they are correct.
Sample Error: Error 13101: Key part 'LockOutEndDateUtc' for type 'aspnetusers' is not valid. All parts of the key must be non-nullable. HRSMonitor C:\Users\Kevin\Documents\Visual Studio 2015\Projects\HRSMonitor\HRSMonitor\Models\dbHRS.edmx
Here's the create table script for the aspnetusers table:
'aspnetusers', 'CREATE TABLE
Id varchar(128) NOT 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 datetime DEFAULT NULL,
LockoutEnabled bit(1) DEFAULT NULL,
AccessFailedCount int(11) DEFAULT NULL,
UserName varchar(256) NOT NULL, PRIMARY KEY (
Id)) ENGINE=InnoDB DEFAULT CHARSET=latin1'
Any ideas would be greatly appreciated.
Found my problem, in MySql, the following statements need to be run and then EF6 cooperates:
set global optimizer_switch='derived_merge=off'; set optimizer_switch='derived_merge=off';