使用Entity Framework在多个模式之间切换

时间:2015-10-14 10:44:17

标签: c# entity-framework

我们正在开发EF6中的REST服务,我的应用程序在数据库中的多个模式之间切换服务调用输入。但我无法在多个模式与EF之间切换。

我已经实现了OnModelCreating,但它只调用了一次。例如,我有用户表,第一次用" schema1.user"来调用OnModelCreating。并且在我第二次尝试调用" schema2.user"时,它将返回" schema1.user"值

1 个答案:

答案 0 :(得分:0)

EF缓存为生产力目的创建的模型。这就是每个应用域和上下文类型调用OnModelCreating一次的原因。

要实现您想要的目标,您可以建立DbContext后代的

层次结构
class MyDbContextBase : DbContext
{
    public DbSet<User> Users { get; set; }

    // other code here;
    // DO NOT override OnModelCreating in this class
}

class MyDbContextA : MyDbContextBase 
{
     // override OnModelCreating here; 
     // e.g. map Users to schema1.user table
}

class MyDbContextB : MyDbContextBase 
{
     // override OnModelCreating here; 
     // e.g. map Users to schema2.user
}

稍后,当您需要处理请求时,根据请求参数创建适当的上下文实例。