将架构添加到Entity Framework 6中的每个查询

时间:2014-09-22 09:04:56

标签: entity-framework schema entity-framework-6

首先,我是EF新手,但我是一位经验丰富的NHibernate用户......

我正在尝试更新与现有数据库通信的现有EF存储库层,以便在提交给数据库的每个查询中自动包含模式。澄清:

  • 数据库表已存在,但它们已移至SQL Server中的新架构
  • C#类模型已存在

每次都不会创建数据库,因此永远不会调用DbContext的OnModelCreating方法。这些类有来自DataAnnotations命名空间的[Key]等,所以我首先猜测它是代码。

在NHibernate中,这很简单,因为我可以在构建配置时添加默认模式,这样无论现有的类模型如何,每个查询都会自动添加模式 - 数据库和类模型不需要更新。

这是否可以在Entity Framework中实现?如果可以,我将把这个覆盖放在哪里?如果没有,我如何更改EF以为每个查询注入架构?我可以覆盖查询生成功能吗?

由于

1 个答案:

答案 0 :(得分:0)

在您的DbContext中添加以下内容

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.HasDefaultSchema("myNewSchema");
}

如果在其他地方没有定义架构,那么它将全局处理它。我认为其他地方明确定义的模式将覆盖您在此处设置的默认模式。