2

因此,我一直在开发一个项目使用实体框架5在开发一段时间,并决定代码将需要移动到生产环境。使用实体框架与两个单独的数据库

我的问题是什么将是一个很好的方法来做到这一点?

我最初的想法是在我的项目中有两个edmx文件,然后在生产环境中注释掉我的开发环境中的生产连接字符串,反之亦然。然而,这看起来并不可行,因为我无法在连接字符串中使用两个具有相同名称的实体模型,从而导致在整个代码中更改模型“上下文”实例,这是没有意义的。

另一个想法是修改开发数据库使用的模型的连接字符串,以指向生产数据源(因为它们都具有相同的表结构)。但我不知道我是否会在这里破坏任何东西。

我已经在这个职位看着这里,它并没有帮助:Entity framework working with both production and development database

注:我不使用代码第一图案,但是从数据库生成模型,并且在开发和生产数据库有同步数据库结构。

谢谢!

回答

4

您可以在web.config文件中使用转换来自动切换您引用的数据库。

看看这个类似的答案:Web.Config Debug/Release

+0

呀变换是要走的路,如果你有什么比正常的web.config看看[SlowCheetah](http://visualstudiogallery.msdn.microsoft更奇特.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5),它可以为其他XML文件进行转换。 – Jafin

1

您仍然有连接字符串中你的web.config(是的,又大又长的实体连接字符串,但它的存在)。只要确保生产部署中的连接字符串指向生产数据库服务器即可。我会建议使用配置转换:

http://msdn.microsoft.com/en-us/library/dd465326.aspx