0

このようなコードがありますが、「CommnadTimeout」を設定するにはどうすればよいですか?

var database = EnterpriseLibraryContainer.Current.GetInstance<Database>();
var sqlGetAllPersons = @"select * from Person.Person";
var personMapper = MapBuilder<Person>.MapAllProperties().Build();

// create an accessor (DataAccessor)
var personAccessor = database.CreateSqlStringAccessor<Person>(sqlGetAllPersons, personMapper);

// execute the accessor (IEnumerable<Person>)
var profiles = personAccessor.Execute();

EntLib 5.0 DAAB MapBuilderからのコードはDBNullをnullにマップします

ありがとう

4

1 に答える 1

1

私はこのソリューションがほとんど好きではありませんが、次のように修正することができました。

public class ParameterMapperWithCommandTimeout : IParameterMapper
{
    public int CommandTimeout { get; set; }

    public void AssignParameters(DbCommand command, object[] parameterValues)
    {
        command.CommandTimeout = this.CommandTimeout;
    }
}

前の例に適用:

var database = EnterpriseLibraryContainer.Current.GetInstance<Database>();
var sqlGetAllPersons = @"select * from Person.Person";
var personMapper = MapBuilder<Person>.MapAllProperties().Build();
var parameterMapper = new ParameterMapperWithCommandTimeout { CommandTimeout = MyTimeOut };

// create an accessor (DataAccessor)
var personAccessor = database.CreateSqlStringAccessor<Person>(sqlGetAllPersons, parameterMapper, personMapper);

// execute the accessor (IEnumerable<Person>)
var profiles = personAccessor.Execute();
于 2012-11-29T21:21:10.937 に答える