C# 使用2个不同数据库迁移数据库的linq2db

C# 使用2个不同数据库迁移数据库的linq2db,c#,sql-server,firebird,linq2db,C#,Sql Server,Firebird,Linq2db,我想使用C#中的linq2db将数据库从Firebird迁移到MSSQL 我想我可以使用Firebird的T4模型加载结构,然后创建表并将数据复制到MSSQL 到目前为止还不错,但它正在将数据复制回Firebird而不是MSSQL 这是我的app.config: <connectionStrings> <add name="Firebird__" connectionString="Data Source=localhost;Initial Catalog=MyData

我想使用C#中的linq2db将数据库从Firebird迁移到MSSQL

我想我可以使用Firebird的T4模型加载结构,然后创建表并将数据复制到MSSQL

到目前为止还不错,但它正在将数据复制回Firebird而不是MSSQL

这是我的app.config:

<connectionStrings>
    <add name="Firebird__" connectionString="Data Source=localhost;Initial Catalog=MyDatabase;User Id=xxx;Password=yyy" providerName="Firebird" />
    <add name="MSSQL__" connectionString="Data Source=192.168.1.x,12345;Initial Catalog=myOtherDatabase;User Id=yyy;Password=xxx" providerName="MSSQL" />
  </connectionStrings>
  <system.data>
        <DbProviderFactories>
            <remove invariant="FirebirdSql.Data.FirebirdClient" />
            <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient" />
        </DbProviderFactories>
    </system.data></configuration>

)

同样的问题,程序使用firebird连接,而不是mssql。
有什么想法吗?

现在我找到了答案,谢谢你

App.config providerName显然非常重要,我需要“SqlServer.2012”


在我的节目中: 这样做的诀窍是:在连接设置中为连接指定一个带有参数“name”的名称,如果您有多个

using (var db_MSSQL = new MSSQL("MSSQL__"))
        {
            db_MSSQL.CreateTable<MSSQL_.MA_DATEN_NAME>();
使用(var db_MSSQL=新的MSSQL(“MSSQL_”))
{
db_MSSQL.CreateTable();

Quote:
使用(var db_MSSQL=new FirebirdDB(“MSSQL_”))
-但如果你要求程序使用Firebird db,它就会使用它。这是有道理的(我试过了,因为另一篇SO文章)。现在我改为使用(var db_MSSQL=new MSSQL(“MSQL”)但根据app.config中的顺序,我会发现错误“DataProvider未提供用于配置:”,尽管我认为我的app.config是正确的。我对C几乎一无所知,但我发现你的app-config甚至没有提到MS SQL提供程序(在工厂或任何其他方法中获得)。也许根据C#ideology,它应该隐式地拉下一些全局Windows MSSQL提供程序,dunno。或者,如果存在声明性思想,则可能“您不能使用尚未声明的变量”-与在配置文件中登记提供程序的方法相同,不知道C#它是如何结构添加的,最初将继续复制到同一源Firebird数据库或某个新的单独FB DB?同一源Firebird数据库!
<connectionStrings>
<add name="Firebird__" connectionString="Data Source=localhost;Initial Catalog=MyDatabase;User Id=yy;Password=xx" providerName="Firebird" />
<add name="MSSQL__" connectionString="Data Source=192.168.1.x,12345;Initial Catalog=MyOtherDatabase;User Id=yy;Password=xx" providerName="SqlServer.2012" />
</connectionStrings>
using (var db_MSSQL = new MSSQL("MSSQL__"))
        {
            db_MSSQL.CreateTable<MSSQL_.MA_DATEN_NAME>();