/// <summary> /// 验证 /// </summary> /// <param name="options">数据库上下文选项</param> public virtual void Validate(IDbContextOptions options) { OracleOptionsExtension oracleOptionsExtension = options.FindExtension <OracleOptionsExtension>() ?? new OracleOptionsExtension(); if (OracleSQLCompatibility != null) { OracleSQLCompatibility.Equals(oracleOptionsExtension.OracleSQLCompatibility); } }
/// <summary> /// 配置上下文(Context)以连接到Oracle数据库。 /// </summary> /// <param name="optionsBuilder"> 用于配置上下文的创建器 </param> /// <param name="connection"> /// 用于连接到数据库的现有<see cref="DbConnection" /> 。 /// 如果连接处于打开状态,则EF不会打开或关闭连接。 /// 如果连接处于关闭状态,那么EF将根据需要打开和关闭连接。 /// </param> /// <param name="oracleOptionsAction"> 允许附加Oracle特定配置的可选操作 </param> /// <returns></returns> public static DbContextOptionsBuilder UseOracle( [NotNull] this DbContextOptionsBuilder optionsBuilder, [NotNull] DbConnection connection, [CanBeNull] Action <OracleDbContextOptionsBuilder> oracleOptionsAction = null) { Check.NotNull(optionsBuilder, nameof(optionsBuilder)); Check.NotNull(connection, nameof(connection)); // 获得扩展,参见OracleOptionsExtension类 OracleOptionsExtension extension = (OracleOptionsExtension)GetOrCreateExtension(optionsBuilder).WithConnection(connection); // 配置Oracle扩展,将扩展添加到DbContextOptions中 ((IDbContextOptionsBuilderInfrastructure)optionsBuilder).AddOrUpdateExtension(extension); // 配置报警扩展 ConfigureWarnings(optionsBuilder); // 进行选项配置 oracleOptionsAction?.Invoke(new OracleDbContextOptionsBuilder(optionsBuilder)); // 返回 return(optionsBuilder); }
/// <summary> /// 初始化 /// </summary> /// <param name="options">数据库上下文选项</param> public virtual void Initialize(IDbContextOptions options) { OracleOptionsExtension oracleOptionsExtension = options.FindExtension <OracleOptionsExtension>() ?? new OracleOptionsExtension(); OracleSQLCompatibility = oracleOptionsExtension.OracleSQLCompatibility; }
public virtual void Initialize(IDbContextOptions options) { _relationalOptions = options.FindExtension <OracleOptionsExtension>() ?? new OracleOptionsExtension(); }