Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 将实体框架模型从SQLServer切换到DB2_.net_Visual Studio 2010_Entity Framework_Web Config_Db2 - Fatal编程技术网

.net 将实体框架模型从SQLServer切换到DB2

.net 将实体框架模型从SQLServer切换到DB2,.net,visual-studio-2010,entity-framework,web-config,db2,.net,Visual Studio 2010,Entity Framework,Web Config,Db2,首先,如果有人有一个DB2工作的实体模型,您可以发布它吗?现在来解释一下: 我有一个开发环境,它有一个SQL Server数据库(仅用于开发)和一个带有DB2数据库的uat/生产环境(或多或少相同的数据库,只是在不同的平台上) 使用VisualStudio2010,我可以成功地针对SQLServer数据库生成实体框架模型,但不能针对DB2。我安装了DB29.7客户机以及“IBMDatabaseAdd-ins for VisualStudio”,它允许我创建到DB2数据库的连接,并通过服务器资源管

首先,如果有人有一个DB2工作的实体模型,您可以发布它吗?现在来解释一下:

我有一个开发环境,它有一个SQL Server数据库(仅用于开发)和一个带有DB2数据库的uat/生产环境(或多或少相同的数据库,只是在不同的平台上)

使用VisualStudio2010,我可以成功地针对SQLServer数据库生成实体框架模型,但不能针对DB2。我安装了DB29.7客户机以及“IBMDatabaseAdd-ins for VisualStudio”,它允许我创建到DB2数据库的连接,并通过服务器资源管理器连接到它,但是当我尝试从DB2VisualStudio生成模型时,挂起,最终得到一个空模型

因为我可以从SQL Server生成模型,所以我想知道在我的环境切换时将web.config更改为指向DB2而不是SQL Server是否容易


是否有人在DB2中使用entity framework,如果有,请发布您的web.config,以便我可以尝试切换提供程序?

切换实体模型以连接到DB2需要两个更改。这显然可能会发生变化,这取决于您所拥有的内容的版本。edmx更改:

<!-- SQL SERVER <Schema Namespace="Models.myDb2Model.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008"                  xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">-->
                <Schema Namespace="Models.myDb2Model.Store" Alias="Self" Provider="IBM.Data.DB2"          ProviderManifestToken="DB2, 09.01.0005, 0, 0" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">

下面是web.config的更改:

 <!-- SQL SERVER<add name="db2Connection" 
     connectionString="metadata=res://*/Models.db2Entities.csdl|res://*/Models.db2Entities.ssdl|res://*/Models.db2Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost;initial catalog=mySqlServerDb;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" /> -->

  <add name="db2Connection" 
       connectionString="metadata=res://*/Models.db2Entities.csdl|res://*/Models.db2Entities.ssdl|res://*/Models.db2Entities.msl;provider=IBM.Data.DB2;provider connection string=&quot;Database=myDb2Db;User ID=myUserId;Password=MyPassword;Server=myServerName:myPort;DBName=myDbName;ConcurrentAccessResolution=Currentlycommitted;CurrentPackageSet=myCurrentPackageSet&quot;" 
       providerName="System.Data.EntityClient" />


编辑:显然,您的计算机需要设置为连接到DB2,为VS提供适当的客户端和数据库加载项。

切换实体模型以连接到DB2需要两个更改。这显然可能会发生变化,这取决于您所拥有的内容的版本。edmx更改:

<!-- SQL SERVER <Schema Namespace="Models.myDb2Model.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008"                  xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">-->
                <Schema Namespace="Models.myDb2Model.Store" Alias="Self" Provider="IBM.Data.DB2"          ProviderManifestToken="DB2, 09.01.0005, 0, 0" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">

下面是web.config的更改:

 <!-- SQL SERVER<add name="db2Connection" 
     connectionString="metadata=res://*/Models.db2Entities.csdl|res://*/Models.db2Entities.ssdl|res://*/Models.db2Entities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost;initial catalog=mySqlServerDb;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" /> -->

  <add name="db2Connection" 
       connectionString="metadata=res://*/Models.db2Entities.csdl|res://*/Models.db2Entities.ssdl|res://*/Models.db2Entities.msl;provider=IBM.Data.DB2;provider connection string=&quot;Database=myDb2Db;User ID=myUserId;Password=MyPassword;Server=myServerName:myPort;DBName=myDbName;ConcurrentAccessResolution=Currentlycommitted;CurrentPackageSet=myCurrentPackageSet&quot;" 
       providerName="System.Data.EntityClient" />


编辑:显然,您的计算机需要设置为连接到DB2,为VS提供适当的客户端和数据库加载项。请参阅,这一点都没有帮助。我已经看到了这些,它们与我的问题无关。我可以连接到DB2,但正如它在我的问题中所说,它挂起,然后给我一个空的数据模型。如果您正在使用DB2 with entity framework,请发布您的web.config,以便我了解如何重新配置以连接到DB2?如果有人关心的话,我相信DB2生成失败的原因之一是因为DB2数据库非常旧(9.4之前,我想是在添加.net提供程序时)。它们已经升级了,但我相信一些模式是以9.4之前的方式保留的,因此破坏了.net提供程序。我认为在查看某些键等时,它会断开,但对于所有CRUD操作,它都应该工作。这是我生成后切换的两倍原因。有人能帮我切换到DB2吗?请看,这一点都没有帮助。我已经看到了这些,它们与我的问题无关。我可以连接到DB2,但正如它在我的问题中所说,它挂起,然后给我一个空的数据模型。如果您正在使用DB2 with entity framework,请发布您的web.config,以便我了解如何重新配置以连接到DB2?如果有人关心的话,我相信DB2生成失败的原因之一是因为DB2数据库非常旧(9.4之前,我想是在添加.net提供程序时)。它们已经升级了,但我相信一些模式是以9.4之前的方式保留的,因此破坏了.net提供程序。我认为在查看某些键等时,它会断开,但对于所有CRUD操作,它都应该工作。这是我生成后切换的两倍原因。有人能帮我切换到DB2吗?