Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
C# 实体框架4是否支持多数据库?_C#_Entity Framework_Entity Framework 4 - Fatal编程技术网

C# 实体框架4是否支持多数据库?

C# 实体框架4是否支持多数据库?,c#,entity-framework,entity-framework-4,C#,Entity Framework,Entity Framework 4,有了实体框架,我可以说在堆栈中的相当高的位置,我要连接到哪个数据库,然后让EF将其用于所有查询吗 在这种情况下,每个模型的数据库不同,而是所有模型都连接到同一个数据库,但根据某些条件(例如URL或子域),该数据库可能不同 如果是,这对数据库池等有什么影响?创建ObjectContext时,构造函数的参数是连接字符串: 应该不会对池产生任何影响。是的,您可以这样做。只需在创建ObjectContext时使用正确的连接字符串,即可将您连接到要使用的数据库。我们经常这样做。每次使用DbContext

有了实体框架,我可以说在堆栈中的相当高的位置,我要连接到哪个数据库,然后让EF将其用于所有查询吗

在这种情况下,每个模型的数据库不同,而是所有模型都连接到同一个数据库,但根据某些条件(例如URL或子域),该数据库可能不同


如果是,这对数据库池等有什么影响?

创建ObjectContext时,构造函数的参数是连接字符串:


应该不会对池产生任何影响。

是的,您可以这样做。只需在创建ObjectContext时使用正确的连接字符串,即可将您连接到要使用的数据库。我们经常这样做。

每次使用
DbContext
时,只需在执行任何查询之前更改connectionString即可

例如,您可以简单地更改初始目录名称:

    YourDbContext.Database.Connection.ConnectionString = "data source=LAPKEVIN\\SQLKEVIN;Integrated Security=SSPI;Initial Catalog=YourDatabase";

但我假设完全相同的数据库(-schema),而不是从MS-SQL切换到oracle?正确。提供程序在编译到程序集中的SSDL中指定。如果要执行此切换,可以将edmx编译操作更改为复制到输出文件夹,并在运行时手动切换ssdl以使用其他提供程序。这里还有objectcontext,它是在动作触发之前全局设置的,然后关闭的?i、 每个请求我可以做一次吗?嗯,对象上下文不应该在线程之间共享,并且通常应该有一个很短的生命周期(每个工作单元)…然后它被释放。是的,每次创建ObjectContext都可以更改它(连接字符串)。所以创建它并销毁它以及页面请求的开始/结束是安全的,对吗?最佳实践?(就像在MVC中执行操作之前/之后)