【发布时间】:2012-05-29 06:57:01
【问题描述】:
我开发的应用程序部署到严苛的环境(开发、测试、登台、生产)。
在开发过程中,我从现有的开发数据库创建了实体模型。一切正常,但是当我想将应用程序放到测试环境中时,我意识到以下问题:
数据库的结构在所有环境中都是相同的,但数据库架构会因环境而异。例如,每个数据库中都有一个Customers 表。在我的本地开发机器上,它具有模式 dbo ([dbo].[Customers]),但在测试环境中,模式是测试 ([test].[Customers]),而模式在暂存环境中是 stag ([stag].[Customers]) 等等。
所以当我在测试环境中部署应用程序时,它没有从数据库中获取任何数据,因为实体框架希望在[dbo].[Customers] 中找到数据但没有这样的表,只有一个[test].[Customers] .
我知道,我可以定义一个 schema other than dbo,但这对我没有帮助,因为我需要一个不同的架构,具体取决于部署环境。
有什么建议吗? 不知何故,我想我最终会要求我的数据库管理员在每个环境中的每个数据库中将架构更改为 dbo...
【问题讨论】:
-
无论如何,后一种选择是最好的,因为有一天您可能希望将模式用于其他目的,例如分离数据模型的逻辑部分。在查询中使用时,UDF 必须以它们的模式名称作为前缀。编写使用 UDF 的存储过程时相当麻烦。
标签: entity-framework entity-framework-4 schema database-schema