我正在使用MVC5和Entity Framework6。我需要将数据双重加载到两个不同的数据库中,因此我需要在第二次加载之前动态更改DBContext的连接。
在做一些研究时,我看到很多人说您可以将连接字符串作为DBContext的参数来传递。
但是,就我而言,它似乎没有任何接受任何参数的重载,并且当我检查DBContext时,它没有接受任何参数的构造函数。
public partial class Entities : DbContext
{
public Entities()
: base("name=Entities")
{
}
这是较新版本的Entity Framework中折旧的构造函数吗?我该如何解决?
答案 0 :(得分:0)
每个数据库都有自己的上下文会更好。
因此,我建议您有两个扩展DbContext的类,并根据需要使用它。
由于我们谈论的是不同的数据库,因此架构可能会发生变化,映射可能会有所不同等等。
如果必须检索相同类型的数据,则可以利用多态性并避免代码中出现很多条件。
答案 1 :(得分:0)
要获取参数,我认为您需要将连接字符串添加到方法中,并根据需要使用尽可能多的连接。
public Entities(string connectionNameInYourWebConfig = "yourDefaultName") :
base($"name={connectionNameInYourWebConfig}")
{
}
我猜是因为在您的情况下,我偶尔会向该参数添加默认连接。我希望这能回答您的问题,干杯