如何根据数据库类型获取上下文?
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.");
}
}
我有两个 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.");
}
}