加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:28:07 所属栏目:百科 来源:网络整理
导读:我们正在使用 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.Dat
我们正在使用 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读