C# 具有多个模型的实体框架(不同的提供程序)

C# 具有多个模型的实体框架(不同的提供程序),c#,mysql,asp.net,oracle,entity-framework,C#,Mysql,Asp.net,Oracle,Entity Framework,我有一个使用Entity Framework的ASP.NET MVC web应用程序,在两个不同的数据库引擎(Oracle和MySQL)中有相同的数据库模式。数据库在Oracle和MySQL中是相同的。应用程序应该与这两个提供者一起工作,因为我有两个不同的场景 当我想在Oracle场景中工作时,我必须手动更改Web.Config以放置正确的ConnectionString、正确的成员身份验证提供程序roleManager…,并且我必须删除数据库模型(edmx文件)并为Oracle重新创建它 当我

我有一个使用Entity Framework的ASP.NET MVC web应用程序,在两个不同的数据库引擎(Oracle和MySQL)中有相同的数据库模式。数据库在Oracle和MySQL中是相同的。应用程序应该与这两个提供者一起工作,因为我有两个不同的场景

当我想在Oracle场景中工作时,我必须手动更改Web.Config以放置正确的ConnectionString、正确的成员身份验证提供程序roleManager…,并且我必须删除数据库模型(edmx文件)并为Oracle重新创建它

当我想从Oracle改为MySQL时,我也遇到了同样的问题。我必须更改web.config以放置正确的提供者和连接字符串,并且必须为MySQL模型重新创建数据库模型(edmx文件)


每次我想更改数据库时,有没有办法避免这项繁重而乏味的任务?

基本上,可以创建多个Web.config,并根据当前使用的环境自动选择正确的Web.config


可以找到其他信息。

只需创建2个edmx文件。我认为这不是一个好的选择,因为如果我有两个edmx(一个用于oracle,一个用于mysql)具有相同的数据库模式(相同的表和字段),我会有编译错误,因为有同名的类。是的,这个解决方案帮助我,但我遇到的最大问题是必须为不同的提供程序重新创建edmx文件(删除edmx文件并为所需的提供程序创建它)。