ServiceStack ORMLite从SQLServer迁移到Oracle,.NET数据提供程序问题

时间:2014-05-28 16:13:31

标签: c# oracle servicestack ormlite-servicestack dataprovider

我正在尝试使用StackService.ORMLite(Ver :)从SQL Server到Oracle更改现有的c#代码。我按照建议做了所有必要的更改。现在我遇到了问题" 无法找到请求的.Net Framework数据提供程序。它可能未安装。"

var db = new OrmLiteConnectionFactory(AppSettingsHelper.TryGetValue(ConfigKeys.ContentLoaderDataBase, default(string)), OracleDialect.Provider);
        FunqContainer.Register<IDbConnectionFactory>(db);
        FunqContainer.Register<IContentLoaderRepository>(c => new ContentLoaderRepository(db));
        FunqContainer.RegisterAutoWiredAs<HttpRequestor, IHttpRequestor>();
        FunqContainer.RegisterAutoWiredAs<Transformer, ITransformer>();
        FunqContainer.RegisterAutoWiredAs<WKH.MR.ContentLoader.Agent.XmlSerializer, IXmlSerializer>();
        FunqContainer.RegisterAutoWiredAs<WKH.MR.ContentLoader.Agent.FieldParser, IFieldParser>();

我正在使用ODP.Net提供程序版本:4.112.3.0并将Oracle.DataAccess引用包含到项目中。 在运行时打开数据库连接时,它会抛出异常&#34;无法找到请求的.Net Framework数据提供程序。它可能没有安装。&#34;。可能是什么问题?

1 个答案:

答案 0 :(得分:2)

假设你的ODP配置是:

<connectionStrings>
    <add name="yourconfig" providerName="Oracle.DataAccess.Client"
connectionString="Data Source=(..);User Id=..." />

你只需要:
1.添加&#34; Oracle.DataAccess.dll&#34;提交给您的申请参考文件
   (通常是路径:

%ORACLE_HOME%\product\..\ODP.NET\bin\{version}\Oracle.DataAccess.dll

2.ADD在web.config下的两个部分   2.1 &#34; configuration \ configSections&#34;

<section name="oracle.dataaccess.client"    
    type="System.Data.Common.DbProviderConfigurationHandler, System.Data,Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>    

2.2 &#34; system.data \ DbProviderFactories&#34; (如果不存在则创建它)

<remove invariant="Oracle.DataAccess.Client" />    
  <add name="Oracle Data Provider for .NET"    
       invariant="Oracle.DataAccess.Client"    
       description="Oracle Data Provider for .NET"    
       type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version={your version}, Culture=neutral, PublicKeyToken=89b483f429c47342"/>    

我解决了与你相同的问题。请记住确保版本相同,即&#34;版本= {版本}&#34;与dll文件版本相同 祝好运!

顺便说一句:我建议这篇帖子帮助来解决 Oracle连接问题 Oralce Data Provider for .net,这可以节省很多时间。
ServiceStack很棒,ORMLite很棒,我希望它可以帮助使用Oralce的人(客户该死的)