有人知道如何通过名称强制odp.net绑定参数,将其与企业库一起使用吗?我知道存在使用OracleCommand的BindParameterByName,但我使用的是带有企业库和DbCommand的odp.net。
发布于 2013-04-25 20:11:00
首先,他们告诉你自己去扩展它,比如
公共抽象类数据库{私有只读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():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;
}}
https://stackoverflow.com/questions/16136717
复制相似问题