是否有人使用SQL Server后端转换现有的.NET应用程序以与Oracle一起使用

时间:2010-01-29 18:35:01

标签: .net sql sql-server oracle

我希望修改一个具有SQL Server后端的.NET应用程序,以使其与Oracle一起使用。有没有人这样做过?我可以避免哪些陷阱?

2 个答案:

答案 0 :(得分:5)

这实际上取决于您访问数据库的方式,以及您的代码有多少是特定于数据库的。

如果您使用Linq to SQL,则必须迁移到其他ORM,因为Linq to SQL仅支持SQL Server。

如果您使用的是存储过程或DDL语句,则可能需要重写其中的大部分内容才能使它们在Oracle中工作。

如果您的SQL语句都符合ANSI SQL,并且您使用ADO.NET访问数据库,则您可能需要做的就是更改连接字符串。

某些数据类型在Oracle中具有不同的名称。

使用Entity Framework可能会减少一些痛点;由于EF支持多个数据库提供程序,因此它应该消除大部分兼容性问题。

一般来说,Oracle需要比SQL Server更多的专业知识,维护和调优。拥有DBA确实很有用。

答案 1 :(得分:1)

除了来自@Robert Harvey的列表之外,您将找到的一个重大差异是生成主键:SQLServer具有自动增量,您必须在oracle中自己完成(至少在Oracle 10之前)我不熟悉11)。通常,您必须使用序列;为了保持一致性,您可以在插入触发器上创建,或者只在insert语句中使用sequence.nextval。