我们在项目中使用EF5.0,我们使用OnModelCreating
事件中的以下代码提供Db架构名称
string schemaName = DbSchema;
modelBuilder.Configurations.Add(new TableMap(schemaName));
但我们的问题是OnModelCreating
事件只被调用一次(即使我再次创建上下文对象),我们需要为循环中处理的不同数据库更改Db模式名称。
我相信EF 6.0有一个类似HasDefaultSchema
的方法,但我无法找到适合EF5.0的方法
有没有办法实现这个目标?
答案 0 :(得分:0)
最干净的方法可能是使用DbContext
的ctor overload that takes model [1]。这样你就可以创建两种不同的配置(虽然只在架构中有所不同)并根据需要进行切换。
模型本身由DbModel
class表示,由DbModelBuilder
class创建。它与OnModelCreating
方法几乎相同。您可以轻松地对此进行参数化。
[1]我想你想要使用一个上下文。如果没有,你我会选择不同的上下文类。