c# – EF6 MySQL StrongTypingException当列不是PK时

前端之家收集整理的这篇文章主要介绍了c# – EF6 MySQL StrongTypingException当列不是PK时前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在使用 MySql和Entity FrameWork与VS 2013这些工具安装:

> MysqL Server 5.7.8
> MysqL WorkBench 6.3.
> MysqL for Visual Studio 1.2.4
> Connector / NET 6.9.
> VS 2013 Ultimate
>通过NuGet安装实体FrameWork 6.1.3

我们已经将必需库导入MysqLWeb,MysqL.Data,MysqL.Data.Emtity.EF6项目

我们使用一个简单的表创建了一个使用MysqLWorkBench的模式:

CREATE TABLE `persona` (
  `idpersona` int(11) NOT NULL,`nombre` int(11) DEFAULT NULL,PRIMARY KEY (`idpersona`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我们的问题是,我们创建了我们连接到数据库的ADO.net实体数据模型,但是它不会创建模型并显示以下错误

‘System.Data.StrongTypingException: El valor de la columna
‘IsPrimaryKey’ de la tabla ‘TableDetails’ es DBNull. —>
System.InvalidCastException: La conversión especificada no es válida.
en
Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.TableDetailsRow.get_IsPrimaryKey()
— Fin del seguimiento de la pila de la excepción interna — en Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.SchemaDiscovery.TableDetailsRow.get_IsPrimaryKey()
en
Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateProperties(IList1
columns,IList
1 errors,List1& keyColumns,List1& excludedColumns,
List1& invalidKeyTypeColumns) en
Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateEntityType(IList
1
columns,Boolean& needsDefiningQuery) en
Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateEntitySets(IEnumerable1
tableDetailsRows,EntityRegister entityRegister,IList
1
entitySetsForReadOnlyEntityTypes,DbObjectType objectType) en
Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.CreateEntitySets(IEnumerable1
tableDetailsRowsForTables,IEnumerable
1 tableDetailsRowsForViews,
EntityRegister entityRegister) en
Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.StoreModelBuilder.Build(StoreSchemaDetails
storeSchemaDetails) en
Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.CreateStoreModel()
en
Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel(List1
errors) en
Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String
storeModelNamespace,ModelBuilderSettings settings,List
1 errors)
en
Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(ModelBuilderSettings
settings,IVsUtils vsUtils,ModelBuilderEngineHostContext
hostContext)’. La carga de los Metadatos desde la base de datos tardó
00:00:00.4029113. La generación del modelo tardó 00:03:36.0692240.

我们已经证明,如果我们把所有的单列作为主键,一切都可以正常工作,一个列不是主键就会出现这个问题,这个列的类型并不重要.

我没有找到任何在互联网上有同样问题的人.

非常感谢您阅读我的问题

问候

解决方法

实体框架(6.1.3版)和MysqL服务器(5.7)

解决问题的一个方法是,

> Open Services(services.msc)并重启MysqL57服务.
>在MysqL中执行以下命令.

使用<< database name>>设置全局optimizer_switch =’derived_merge = OFF’;>更新.edmx.

猜你在找的C#相关文章