企业库+ Odp.Net BindParameterByName

时间:2013-04-21 22:05:42

标签: c# enterprise-library odp.net

任何人都知道如何通过名称强制使用odp.net绑定参数,并将其与企业库一起使用?我知道使用BindParameterByName存在OracleCommand,但我正在将odp.net与企业库和DbCommand一起使用。

1 个答案:

答案 0 :(得分:1)

我认为thisthis帖子可以提供帮助。

他们中的第一个告诉你要通过自己来扩展它,比如

公共抽象类数据库 {     私人只读DbProviderFactory工厂;

protected Database(DbProviderFactory factory)
{
    this.factory = factory;
}

public virtual DbCommand CreateCommand(String commandText)
{
    return CreateCommand(CommandType.Text, commandText);
}

public virtual DbCommand CreateCommand(CommandType commandType, String commandText)
{
    DbCommand command = factory.CreateCommand();
    command.CommandType = commandType;
    command.Text = commandText;
    return command;
}

public virtual void BindParametersByName(DbCommand command)
{

}

} 并选择创建一个覆盖默认命令创建的Oracle特定实现,或者提供按名称绑定参数的选项。

公共类OracleDatabase:数据库 {     public OracleDatabase()         :base(OracleClientFactory.Instance)     {

}

public override DbCommand CreateCommand(CommandType commandType, String commandText)
{
    DbCommand command = base.CreateCommand(commandType, commandText);
    BindParametersByName(command);
    return command;
}

public override void BindParametersByName(DbCommand command)
{
    ((OracleCommand)command).BindByName = true;
}

}