gpt4 book ai didi

mysql - 在 Entity Framework 6 中使用 MySQL 和 MSSQL

转载 作者:行者123 更新时间:2023-11-29 04:18:57 24 4
gpt4 key购买 nike

我正在开发网络服务。

这个服务背后有两个方法:一个从 MySQL 连接获取实体,另一个从 MSSQL 服务器连接获取实体。

我有两个连接字符串。

我想要两个上下文,它们是完全分开的。

但我无法管理这个。

有什么想法吗?

最佳答案

最终解决方案很简单。

一定要安装MySql Connector/Net在所有目标系统上!我在我的目标平台上错过了这个。

web.config/app.config:

<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="MsSqlServerContext" connectionString="MSSQLCONNECTIONSTRING" providerName="System.Data.SqlClient" />
<add name="MySqlServerContext" connectionString="MYSQLCONNECTIONSTRING" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
</entityFramework>
</configuration>

MsSqlServerContext.cs

public partial class MsSqlServerContext : DbContext
{
public MsSqlServerContext()
: base("name=MsSqlServerContext")
{
Database.SetInitializer<MsSqlServerContext>(null);
}

// Add DbSets here
public DbSet<ClassName1> SomeName1 { get; set; }
public DbSet<ClassName2> SomeName2 { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Add Mappings here
modelBuilder.Configurations.Add(new ClassName1Map());
modelBuilder.Configurations.Add(new ClassName2Map());
}
}

MySqlServer上下文

public partial class MySqlServerContext : DbContext
{
public MySqlServerContext()
: base("name=MySqlServerContext")
{
Database.SetInitializer<MySqlServerContext>(null);
}

public DbSet<ClassName3> SomeName3 { get; set; }
public DbSet<ClassName4> SomeName4 { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new ClassName3Map());
modelBuilder.Configurations.Add(new ClassName4Map());
}
}

关于mysql - 在 Entity Framework 6 中使用 MySQL 和 MSSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31280119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com