如何根据数据库类型获取上下文?

How to get context based on database type?

我有两个 Context,如下所示。

public class AddressContext:DbContext{

    public AddressContext()
    {
        Name = "AddressContext";

    }
    public DbSet<address> addresses { get; set; }
}

public class NamesContext:DbContext{
    public NamesContext()
    {
        Name = "NamesContext";
    }
     public DbSet<Names> names { get; set; }
}

我还为 DatabaseType 添加了 enum

public enum DatabaseType
{
    address,
    names 
}

我想根据 DatabaseType.

得到 Context

我不是很熟悉 C# 中的工厂或策略模式。我确实尝试编写它,但最后我必须转换该上下文才能使用它。

根据传递 DatabaseType 作为参数获取 Context 的最佳方法是什么?

public DbContext GetContext(DatabaseType dbType)
{
    switch(dbType)
    {
        case DatabaseType.address:
            return new AddressContext();
        case DatabaseType.names:
            return new NamesContext();
        default:
            throw new ArgumentException("Unexpected db type.");
    }
}