支持多个DBMS;更新期间更新客户端数据库的最佳策略?

时间:2010-12-06 23:18:48

标签: c# asp.net entity-framework c#-4.0

我们的产品支持多个数据库。目前,我们支持FireBird和MSSql,Oracle将来会有支持。

当我们推出产品更新时,我们也有可能需要更新客户端的数据库架构。

传统上我们有一些脚本,这些脚本都是DB版本的,它会执行“Alter table add column”之类的操作,这些脚本的执行是为了使数据库达到正确的版本。这变得很麻烦,因为我们必须维护两组sql脚本(如果我们将Oracle添加到混合中,还有更多的东西)。

我们在数据库层中使用实体框架。 EF已包含数据库的模式。我想知道 - 有没有一种灵活的方式来使用EF和它的架构知识来处理客户端数据库的更新?

编辑 -

这是EF 4.0

1 个答案:

答案 0 :(得分:-1)

您尚未提及您使用的是哪个版本的EF。在V4中,您可以使用“Code First”模型。查看ScottGu's post。我不是100%确定它是否支持您需要的所有数据库。 [edit]这只会创建新的模式,而不是更新现有的模式[/ edit]

这可能是一些工作,但可能值得切换到nHibernate,它支持更多种类的DB并自动更新架构。