1

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

我有两个问题:

1)我使用代码优先和数据库迁移。迁移类似乎将模式dbo嵌入到表的名称中。

如何根据测试/生产标志更改架构

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

谢谢你,伊多。

4

2 回答 2

4

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

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

并控制MySchema来自配置的值,但这确实是个坏主意。有一天,您忘记更改值并中断生产。使用本地数据库进行开发和测试。

于 2012-09-09T20:00:30.993 回答
1

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

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

使用一些数据库名称约定来表明它们的目的要容易得多。

于 2012-09-09T20:16:30.703 回答