【问题标题】:change schema name at edmx file dynamically using entity framework 6 db first approach with Oracle DB使用实体框架 6 db first 方法与 Oracle DB 动态更改 edmx 文件中的模式名称
【发布时间】:2019-01-16 12:45:51
【问题描述】:

我有一个 UI 页面,其中包含一个带有多个值的下拉列表。

在 UI 页面中,用户将从下拉列表中选择一个架构,然后应将与该架构相关的数据加载到网格中。这意味着将来我们可能会获得更多的模式,每个模式都具有相同的 Oracle 数据库和表结构。

已经使用默认配置的 DB First 方法创建了实体上下文。但基于上述要求,我需要根据 Schema 更改连接到 Oracle DB。

虽然我在下面使用对我不起作用,但它始终指向在连接字符串中配置的架构,而不是我发送到实体上下文的架构。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            if (SchemaName != null)
            {
                modelBuilder.HasDefaultSchema(SchemaName);
            }
            base.OnModelCreating(modelBuilder);
            throw new UnintentionalCodeFirstException();
        }

有人可以建议最好的方法吗?

我尝试在模型创建时应用架构名称,如上面的代码这对我不起作用。

实际需要的是,已经使用默认配置的 DB First 方法创建了实体上下文。但基于上述要求,我需要根据 Schema 更改连接到 Oracle DB。

【问题讨论】:

    标签: c# asp.net-web-api oracle11g entity-framework-6 ef-database-first


    【解决方案1】:

    我通过添加一个帮助程序类找到了解决方案,该帮助程序类将在运行时通过替换架构来更新实体上下文文件。

    我刚刚关注了网址EF6 Dynamic Schema Change,这对我来说效果很好。 我将连接更改为使用 ORACLE,并从我的服务层调用此“连接”方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      相关资源
      最近更新 更多