Кто-нибудь конвертировал существующее приложение .NET с бэкэндом SQL Server для работы с Oracle - PullRequest
1 голос
/ 29 января 2010

Я хочу изменить приложение .NET, имеющее серверную часть SQL Server, чтобы оно работало с Oracle. Кто-нибудь делал это? Какие-нибудь подводные камни, которых я могу избежать?

Ответы [ 2 ]

5 голосов
/ 29 января 2010

Это действительно зависит от того, как вы обращаетесь к базе данных, и какая часть вашего кода зависит от базы данных.

Если вы используете 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 голос
/ 29 января 2010

Одно из больших отличий, которое вы найдете, кроме списка от @Robert Harvey, заключается в генерации первичных ключей: SQLServer имеет автоинкремент, который вам придется делать самостоятельно в Oracle (по крайней мере, до Oracle 10 - Я не знаком с 11). Как правило, вам придется использовать последовательность; для согласованности вы можете создать триггеры вставки или просто использовать sequence.nextval в вашем операторе вставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...