Entity Framework с Model-First и Oracle
Я пытаюсь использовать Entity Framework с Model-First в базе данных Oracle. Я установил ODP.NET и Oracle Visual Studio Tools из файла ODTwithODAC1120320_32bit.zip
какая версия 11.2.0.3.20
,
Я сделал небольшую тестовую модель, установил строку подключения к БД Oracle, изменил шаблоны генерации кода модели на Generate Oracle via T4 (TPT).xaml
а также SSDLToOracle.tt
, Генерация кода работает, однако сгенерированный SQL не может использоваться:
CREATE TABLE "dbo"."Entity1Set" (
"Id" UNIQUEIDENTIFIER NOT NULL,
"NvarcharProperty" NVARCHAR(MAX) NOT NULL
);
ни UNIQUEIDENTIFIER
ни NVARCHAR
действительные ключевые слова Oracle. Кроме того, Oracle обрабатывает схемы иначе, чем SQL Server, поэтому "dbo".
вещи не будут работать.
Как вы обычно справляетесь с этим? Изменение SQL после каждого поколения кода?
Есть ли другие способы использования EF с Oracle и Model-First?
1 ответ
Похоже, ваша модель была сгенерирована из SqlServer и затем передана в SSDLToOracle.tt. Файл SSDLToOracle.tt, вероятно, не проверяет, действительно ли он имеет дело со специфичной для Oracle StoreItemCollection, и просто использует то, что он получает, что приводит к генерации гибридного специфичного для Oracle SQL, использующего типы SqlServer. Вы можете проверить, для какой базы данных была сгенерирована модель, открыв файл edmx и проверив Provider
а также ProviderManifestToken
атрибутов.