C# 如何开发与多个数据库管理系统兼容的web应用程序

C# 如何开发与多个数据库管理系统兼容的web应用程序,c#,asp.net,database,rdbms,C#,Asp.net,Database,Rdbms,如何设计和管理web应用程序的开发,使其与Oracle和MS SQL Server等多个数据库管理系统兼容 如果您不能使用像NHibernate或EF这样的ORM,那么在开发过程中如何维护数据库模式 我现在的方法是在SQL Server上有一个开发数据库,并在发布测试补丁之前将其移植到Oracle(使用工具),以便在两个rdbms上测试软件。(该工具还生成应用程序用于升级数据库的文件) 这是一个好方法吗?VisualStudio的数据库项目如何,这是保持我的db模式的更好方法吗 编辑: 这个问题

如何设计和管理web应用程序的开发,使其与Oracle和MS SQL Server等多个数据库管理系统兼容

如果您不能使用像NHibernate或EF这样的ORM,那么在开发过程中如何维护数据库模式

我现在的方法是在SQL Server上有一个开发数据库,并在发布测试补丁之前将其移植到Oracle(使用工具),以便在两个rdbms上测试软件。(该工具还生成应用程序用于升级数据库的文件)

这是一个好方法吗?VisualStudio的数据库项目如何,这是保持我的db模式的更好方法吗

编辑:
这个问题不是关于设计应用程序的架构(我已经有了一个抽象的数据访问层),但是,如何在开发过程中维护不同类型rdbms的数据库模式。

实际上,处理这一问题的唯一方法是将数据库访问与核心应用程序分离,以便可以自定义每个数据库的访问代码。换句话说,这正是Nhibernate和EF所做的。如果你不能使用这些工具中的一个,你仍然会以任何方式写一个。这可能很有趣,但也会占用大量时间。因此,我要问一些严肃的问题,关于为什么不能使用ORM。

模型驱动体系结构(MDA):使用泛型设计数据库模式。以通用方式定义表/关系/主键等,然后让设计器生成必要的SQL脚本(大多数支持输出到各种数据库)。当您更改数据库模型时,该工具将生成必要的SQL代码来更新数据库,或者从头开始生成数据库。这些工具还有助于生成文档和协助数据库版本控制,以及其他许多事情


我使用并对工具和价格非常满意。它看起来也是一个优秀的工具,具有生成和反向工程代码的能力。

我认为关键是确保您坚持标准SQL语法。MS SQL Server附带Transact-SQL(T-SQL),这是一个超组,这意味着它有额外的语法,而这些语法不是标准SQL的正式组成部分

是一个很好的站点,它允许您比较不同数据库的语法支持。您会发现,您每天使用的大多数语法在大多数DBs之间都是相同的,但也有一些奇怪之处。找到它们的最佳方法是检查每个环境中的每个查询,然后将它们检查到源代码管理中


您使用数据库项目的想法很好。它将允许您快速地将更改部署到多个数据库,并自动测试它们

我的问题不是关于C代码的开发,而是如何维护不同类型rdbms的数据库模式