I have been trying to migrate to another computer while also upgrading from VS2012 to VS2019... so far I have upgraded target framework from .Net v4.0 to v4.7.2. As well as EntityFramework is v6.4.4
Current states:
Machine config -
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.26.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
<add name="IBM DB2 .NET Data Provider 11.1.3030" invariant="IBM.Data.DB2.11.1.3030" description="IBM DB2 Data Provider 11.1.3030 for .NET Framework 4.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2.11.1.3030, Version=11.1.3030.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208"/>
<add name="IBM Informix .NET Data Provider 11.1.3030" invariant="IBM.Data.Informix.11.1.3030" description="IBM Informix Data Provider 11.1.3030 for .NET Framework 4.0" type="IBM.Data.Informix.IfxFactory, IBM.Data.Informix.11.1.3030, Version=11.1.3030.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208"/>
</DbProviderFactories>
Initial error when running -
Exception: "Unable to find the requested .Net Framework Data Provider. It may not be installed." Source: EntityFramework
When printing out all provider factory classes I get these providers (which make sense when looking at machine.config)
IBM DB2 .NET Data Provider 11.1.3030 IBM DB2 Data Provider 11.1.3030 for .NET Framework 4.0 IBM.Data.DB2.11.1.3030 IBM.Data.DB2.DB2Factory, IBM.Data.DB2.11.1.3030, Version=11.1.3030.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208
IBM Informix .NET Data Provider 11.1.3030 IBM Informix Data Provider 11.1.3030 for .NET Framework 4.0 IBM.Data.Informix.11.1.3030 IBM.Data.Informix.IfxFactory, IBM.Data.Informix.11.1.3030, Version=11.1.3030.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208
From there I tried changing an existing line in Web.config from...
<provider invariantName="IBM.Data.DB2" type="IBM.Data.DB2.EntityFramework.DB2ProviderServices, IBM.Data.DB2.EntityFramework, Version=10.5.5.6, Culture=neutral, PublicKeyToken=..." />
to
<provider invariantName="IBM.Data.DB2.11.1.3030" type="IBM.Data.DB2.EntityFramework.DB2ProviderServices, IBM.Data.DB2.EntityFramework, Version=11.1.3030.4, Culture=neutral, PublicKeyToken=..." />
Exception: "Could not load file or assembly 'IBM.Data.DB2.EntityFramework, Version=11.1.3030.4, ... The located assembly's manifest definition does not match the assembly reference."
So I guess, EntityFramework is looking for an invariantName = "IBM.Data.DB2" but I only have "IBM.Data.DB2.11.1.3030" installed on my machine. Is there a way to redirect the entityframework to look for the other version of db2? or what would be a good way to navigate this? Let me know if I can add more information, thank you.