更改实体框架的模式

时间:2012-09-09 13:37:29

标签: entity-framework entity-framework-4

我正在开发的ASP MVC 4网站上使用Entity Framework 5。 因为我使用的共享主机收取我使用的数据库的数量,我想在我的生产站点附近运行一个测试站点。

我有两个问题:

1)我使用Code First和Database Migration。迁移类似乎将模式 dbo 嵌入到表的名称中。

如何根据test / production标志更改架构

2)如何更改EF选择数据的架构?

谢谢你, IDO。

2 个答案:

答案 0 :(得分:3)

迁移和EF都从映射中获取模式,因此如果要更改模式,则必须更新要使用的映射:

modelBuilder.Entity<MyEntity>().ToTable("MyTable", "MySchema");

并从配置中控制MySchema的值,但这确实是个坏主意。有一天你忘记改变价值并打破你的生产。使用本地数据库进行开发和测试。

答案 1 :(得分:1)

如前所述:使用相同的数据库(结构上)进行开发,测试和生产。

模式的目标是对数据库对象进行分组,就像我们在例如命名空间中那样。 C#,或简化数据库对象组的权限。不识别数据库阶段。通过将它们用于后者,您还可以更加努力地(如果不是不可能)使用模式。例如,请参阅this MSDN白皮书。

使用某些数据库名称约定来表示其用途要容易得多。