【发布时间】:2013-04-21 22:05:42
【问题描述】:
任何人都知道如何通过名称强制 odp.net 绑定参数,将其与企业库一起使用?我知道存在BindParameterByName 使用OracleCommand,但我正在使用带有企业库和DbCommand 的odp.net。
【问题讨论】:
标签: c# enterprise-library odp.net
任何人都知道如何通过名称强制 odp.net 绑定参数,将其与企业库一起使用?我知道存在BindParameterByName 使用OracleCommand,但我正在使用带有企业库和DbCommand 的odp.net。
【问题讨论】:
标签: c# enterprise-library odp.net
他们首先告诉你自己扩展它,比如
公共抽象类数据库 { 私有只读 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;
}
}
【讨论】: