0

У меня есть приложение .NET 4.0, которое использует Entity Framework 4, который подключается к базе данных MS SQL 2008. Используется соглашение об именах, например таблица «Клиенты», поля: «Id», «Id_Order». Теперь мне нужно переключиться с SQL Server на Oracle Server, поэтому я перенес базу данных MS SQL в базу данных oracle, но проблема в том, что все имена таблиц и имена столбцов в верхнем регистре, поэтому, создавая edmx для oracle (используя ODAC) Мне нужно будет изменить код с «Клиенты» на «КЛИЕНТЫ», «Ид» на «Идентификатор», «Id_Client» на «ID_CLIENT», и это сильно изменится. Миграция была выполнена с использованием встроенного средства миграции из Oracle SQL Developer 3.1.07.Как установить имена таблиц и столбцы как чувствительные к регистру в oracle 11g?

Отрывок из сгенерированного сценария: CREATE TABLE Клиенты (

Я прочитал, что для того, чтобы создать идентификаторы регистрозависимые вы должны использовать двойные кавычки Так что я думаю, что сценарий должен быть чем-то вроде этого.: TABLE «Клиенты» CREATE (

кто-нибудь знает инструмент миграции, perserves имена случай или, по крайней мере, общий вариант, который я могу включить в сценарий?

ответ

1

Почему вам нужно изменить код? целая точка Oracle нечувствительность к регистру - это то, что вы можете ссылаться на таблицу как clients, Clients, CLIENTS, или даже clIeNtS, и он будет работать.

Вы используете только двойные кавычки, если хотите получить чувствительность к регистру по какой-либо причине, но если у вас нет имен таблиц, которые не совпадают с футляром (shudder), вам это не понадобится.

+0

В моем приложении .NET 4.0 у меня много кода linq: using (ExampleDbContext context = new ExampleDbContext()) {context.Clients.FirstOrDefault(); } Поэтому, если я создаю edmx, используя базу данных oracle, мне придется писать с использованием (ExampleDbContext context = new ExampleDbContext()) {context.CLIENTS.FirstOrDefault(); } Большинство моих запросов выполняются в linq, где C# учитывает регистр, а не хранимые процедуры. – user1218632

+0

В Oracle SQL вы можете обратиться к таблице с любой комбинацией случая, который вы хотите использовать. Включая «Клиенты». Итак, почему вам нужно изменить код LINQ, чтобы вместо этого сказать «КЛИЕНТЫ»? –

+0

Когда вы создаете файл edmx из MS SQL, у вас есть сгенерированный C# код, например context.Clients, а когда вы создаете из Oracle, у вас есть сгенерированный C# код, например context.CLIENTS, поэтому у меня будут ошибки во время компиляции в .NET. application – user1218632