0

我们在项目中使用 EF5.0,并且在OnModelCreating事件中使用以下代码提供 Db Schema 名称

string schemaName = DbSchema; 
modelBuilder.Configurations.Add(new TableMap(schemaName));

但是我们的问题是该OnModelCreating事件只被调用一次(即使我再次创建上下文对象),我们需要更改我们正在循环处理的不同数据库的 Db Schema 名称。

我相信 EF 6.0 有类似的方法,HasDefaultSchema但我无法找到 EF5.0 的方法

有什么办法可以做到这一点?

4

1 回答 1

0

最干净的方法可能是使用采用模型[1]DbContext的 ctor重载。这样,您可以创建两种不同的配置(尽管仅在架构上有所不同)并根据需要进行切换。

模型本身由 class 表示并由DbModelclass创建。这与方法中的几乎相同。您可以轻松地对其进行参数化。DbModelBuilderOnModelCreating

[1] 我想你想使用一个上下文。如果没有,我会选择不同的上下文类。

于 2013-10-28T19:12:00.243 回答