我使用的是Visual Studio2013和Entity Framework5和MySQL Server5.7.9。
当尝试从数据库创建模型(或“从数据库更新模型”)时,会出现以下消息:
'System.Data.StrongTypingException:表'TableDetails‘中列'IsPrimaryKey’的值为DBNull。-> System.InvalidCastException:指定的cast无效。
我知道以前有人问过这个问题,但我还没有找到任何解决方案。另外,我也没有降级到MySQL 5.6的选项。
即使对于一个简单的表,也会出现这个问题。
示例表
CREATE TABLE new_table
(
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(45) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
如果表只由主键组成,那么模型就像它应该创建的那样被创建。
主键编辑:如果我将两个字段都设为主键,则创建模型时没有任何错误。
有人知道这是怎么回事吗?
致以亲切的问候。
完整的错误堆栈:
无法生成模型,因为发生了以下异常:'System.Data.StrongTypingException:表'TableDetails‘中'IsPrimaryKey’列的值为DBNull。-> System.InvalidCastException:指定的cast无效。at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.TableDetailsRow.get_IsPrimaryKey() --内部异常堆栈跟踪结束- at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.TableDetailsRow.get_IsPrimaryKey() at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateProperties(IList
1 columns, IList
1 errors,List1& invalidKeyTypeColumns) at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateEntityType(IList
1 & excludedColumns,List1& invalidKeyTypeColumns) at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateEntityType(IList
1 columns,Boolean& needsDefiningQuery) at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateEntitySets(IEnumerable1 tableDetailsRows, EntityRegister entityRegister, IList
1 entitySetsForReadOnlyEntityTypes,Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateEntitySets(IEnumerable1 tableDetailsRowsForTables, IEnumerable
1 tableDetailsRowsForViews的DbObjectType objectType),错误) at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.Build(StoreSchemaDetails ) at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.CreateStoreModel() at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel(List1 errors) at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String storeModelNamespace, List
1 entityRegister) at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(EdmxHelper edmxHelper)‘。从数据库加载元数据耗时00:00:00.5856317。
https://stackoverflow.com/questions/33575109
复制相似问题