有一个现有的c# . net代码库,该代码库当前被编码为直接访问Oracle的ODP。. NET API用于数据库访问。我们有兴趣在应用程序的这一部分做一些重构。
我们公司有另一个基于java的代码库,其中myBATIS用于访问Oracle数据库。我们真的很喜欢myBATIS,所以我正在考虑在c# . net应用程序中使用myBATIS。
然而这里有一个"但是":但是在看关于。net的myBATIS的信息时,它似乎是分层到ADO.NET上的。
真的很想让我的batis直接进入ODP。. NET用于处理Oracle数据库。(我们希望有自由使用特定版本的ODP.NET。)
这已经可以做到了吗?或者我们需要卷起袖子,编写我们自己的myBATIS分支,直接分层到ODP上。.NET(而不是ADO.NET)?
我还不是myBATIS讨论组的成员,所以我先在这里问一下。
您的sqlMapConfig
的providers
部分应该指向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"
/>
是的,有可能。我以前对付过ODP。. NET和Microsoft Oracle客户端,但是不记得细节了