Можно ли использовать mybatis .NET напрямую с клиентом Oracle ODP.NET? - PullRequest
2 голосов
/ 18 ноября 2011

Иметь существующую базу кода C # .NET, которая в настоящее время закодирована для прямого доступа к Oracle ODP.NET API для доступа к базе данных Мы заинтересованы в проведении рефакторинга в этой области приложения.

Наша компания имеет еще одну базу кода на основе Java, в которой myBATIS используется для доступа к базе данных Oracle. Нам действительно нравится myBATIS, поэтому я рассматриваю myBATIS для приложения C # .NET.

Тем не менее, здесь есть «но»: но при просмотре информации о myBATIS для .NET она выглядит наслоенной на ADO.NET.

Очень хотелось бы, чтобы myBATIS работал непосредственно с ODP.NET при работе с базой данных Oracle. (И мы бы хотели иметь возможность использовать очень специфическую версию ODP.NET.)

Возможно ли это уже сделать, или нам нужно закатать рукава и кодировать нашу собственную ветку myBATIS, которая размещается непосредственно в ODP.NET (вместо ADO.NET)?

Я не являюсь членом (пока) дискуссионных групп myBATIS, поэтому сначала спрашиваю здесь.

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Раздел providers вашего sqlMapConfig должен указывать на файл providers.config с поставщиком, похожим на:

<provider 
    name="oracle10.1" 
    description="Oracle, oracle provider V10.1.0.301"
    enabled="true" 
    assemblyName="Oracle.DataAccess, Version=10.1.0.301, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionClass="Oracle.DataAccess.Client.OracleConnection" 
    commandClass="Oracle.DataAccess.Client.OracleCommand" 
    parameterClass="Oracle.DataAccess.Client.OracleParameter" 
    parameterDbTypeClass="Oracle.DataAccess.Client.OracleDbType" 
    parameterDbTypeProperty="OracleDbType" 
    dataAdapterClass="Oracle.DataAccess.Client.OracleDataAdapter" 
    commandBuilderClass="Oracle.DataAccess.Client.OracleCommandBuilder" 
    usePositionalParameters="true" 
    useParameterPrefixInSql="true"
    useParameterPrefixInParameter="true" 
    parameterPrefix=":" 
    useDeriveParameters="false"
    allowMARS="false"    
/>
0 голосов
/ 18 ноября 2011

Да, это возможно.Я делал это раньше с ODP.NET и клиентом Microsoft Oracle, но не помню деталей.

...