实体框架"默认架构"在SQL Server中?

时间:2018-02-20 00:46:37

标签: c# sql-server entity-framework

我们有一个使用Entity Framework的完整应用程序。有30个表,有许多相互关联的关系。所有这些表都存在于与此应用程序直接关联的SQL Server架构中。

(" schema"我的意思是一个SQL"命名空间",不是" schema"在"我的表的定义")

例如,此架构创建为:

CREATE SCHEMA [myApp]

此外,我们有一个"主人"具有在少数应用程序中通用的数据的架构。 (我们使用模式来分隔单个数据库目录中的应用程序。)

现在,我被要求用自己的独立表格提出我们应用程序的第二个实例。例如:

CREATE SCHEMA [mySecondApp]

这个新模式将包含所有相同的表和它们之间的关系,就像[myApp]模式一样。它仍将引用我们的" master"架构也是如此。

问题是看起来Entity Framework直接通过完全限定名称引用表,其中包括模式。 (例如MyDB.MyApp.table1等)。这意味着为了支持这种情况,我要么说服IT给我另一个目录,它需要自己的主模式数据的实时同步副本,或者我需要让Entity Framework引用另一个模式。

没有在整个EF模型中逐字地查找/替换模式,然后单独维护两个模型(破坏例如迁移的所有好处),我该怎么做?理想情况下,我喜欢一个变量,我可以在其中保存模式,该模式可以在Web.config文件中设置,然后EF将接收并随处使用,包括迁移和应用程序本身。

管道梦想:在web.config中更改一个值,运行Update-Database,并拥有一个随时可用的模式,其中包含根据我们的迁移和Seed方法预先填充的所有表格。在web.config中再次更改该值,并根据需要使用不同的模式名称再次执行该操作。 (请注意,主模式引用应保持不变 - 这就是我考虑某种变量的原因。)

当然,也可以在IIS应用程序服务器上更改web.config中的值,并将应用程序指向其他模式。然后,我只需为IIS上的每个实例设置多个部署配置文件和Web.config转换。

0 个答案:

没有答案