0

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

4

1 回答 1

1

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

首先他们告诉你自己扩展它,比如

公共抽象类数据库 { 私有只读 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:数据库{公共OracleDatabase():基础(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;
}

}

于 2013-04-25T12:10:59.990 回答