2017-05-04 245 views
0

我使用EF6与多个数据库(SQL SERVER,ORACLE) 我们正在从SQL Server迁移到Oracle。一切工作在SQL服务器。在Oracle中,我们正面临修剪字符列的问题。我用这个链接trailing-blanks-issue-in-string-joins来解决问题。但默认情况下这个拦截正在申请SQL Server。我想将它应用于Oracle。
我所做的是
实体框架代码第一个DbConfiguration为多个数据库

public class MyConfiguration : DbConfiguration 
     { 
      public MyConfiguration() 
      { 
       SetProviderServices("Oracle.ManagedDataAccess.Client", EFOracleProviderServices.Instance); 
       SetProviderFactory("Oracle.ManagedDataAccess.Client", OracleClientFactory.Instance); 
       AddInterceptor(new StringTrimmerInterceptor()); 

      } 
     } 


[DbConfigurationType(typeof(EBS.DAL.Model.MyConfiguration))] 
     public class EBS_GIROdbContext : DbContext 
     { 

      static EBS_GIROdbContext() 
      { 
       Database.SetInitializer<EBS_GIROdbContext>(null); 

      } 
      //NeoSampleGIRODBEntities 
      //OracleDbContext 
      public EBS_GIROdbContext() 
       : base("Name=OracleDbContext") 
      { 

      } 


在Global.asax中

DbConfiguration.SetConfiguration(new EBS.DAL.Model.MyConfiguration()); 


仍然正在申请SQL SERVER。我如何为Oracle添加DbConfiguration? 我不能够得到它

在此先感谢

回答

0

我解决了这个。

public sealed class EntityFrameworkConfiguration : DbConfiguration 
    { 
     public static readonly DbConfiguration Instance = new EntityFrameworkConfiguration(); 

     EntityFrameworkConfiguration() 
     { 
      this.SetDefaultConnectionFactory(new OracleConnectionFactory()); 
      this.SetProviderServices("Oracle.ManagedDataAccess.Client", EFOracleProviderServices.Instance); 
      this.AddInterceptor(new StringTrimmerInterceptor()); 

     } 
    } 


[DbConfigurationType(typeof(EntityFrameworkConfiguration))] 
    public class EBS_GIROdbContext : DbContext 
    { 

     static EBS_GIROdbContext() 
     { 
      Database.SetInitializer<EBS_GIROdbContext>(null); 
     } 


在Global.asax中

DbConfiguration.SetConfiguration(EntityFrameworkConfiguration.Instance); 


此设置将在所有选择查询添加微调功能像这样

VARCHAR2数据类型
SELECT 
    "Extent1"."LBRCODE" AS "LBRCODE", 
    LTRIM(RTRIM("Extent1"."CAT")) AS "CAT", 
    LTRIM(RTRIM("Extent1"."CATTYPE")) AS "CATTYPE", 
相关问题