public abstract class PersonAccessor : DataAccessor<Person, PersonAccessor>
{
[SqlQuery(@"
SELECT
p.PersonId,
p.FirstName,
p.SecondName,
p.MiddleName,
p.Gender
FROM Person p
WHERE p.PersonId = @PersonId")]
public abstract Person GetPerson(int personId);
}
как в этом случае правильно задать значение для Command.CommandTimeout для PersonAccessor или глобально для всех DataAccessor-ов?
Здравствуйте, Odi$$ey, Вы писали:
OE>как в этом случае правильно задать значение для Command.CommandTimeout для PersonAccessor или глобально для всех DataAccessor-ов?
Свой наследник от DbManager, там вроде подходящий виртуальный метод был.
... << RSDN@Home 1.2.0 alpha 4 rev. 1424 on Windows 7 6.1.7600.0>>
Здравствуйте, AndrewVK, Вы писали:
OE>>как в этом случае правильно задать значение для Command.CommandTimeout для PersonAccessor или глобально для всех DataAccessor-ов? AVK>Свой наследник от DbManager, там вроде подходящий виртуальный метод был.
а в каком месте потом этого наследника использовать?
А так разве нельзя?
public abstract class Database : DataAccessor
{
public override DbManager GetDbManager()
{
var db = new DbManager("MyDb");
db.InitCommand += DbInitCommand;
return db;
}
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, cadet354, Вы писали:
C>>не лучше ли это сделать (задание таймаута) в в виде атрибута, на метод\весь класс?
AVK>Не лучше. В атрибут можно передать только константу, а прошивать константный таймаут в код программы — несколько странное решение.
а сейчас "прошито" 30 секунд, и для 90% запросов это работает, если я знаю, что этот запрос очень долгий(тот же не к ночи упомянутый репортинг), то я просто забил бы например 5 минут и это решило бы еще оставшиеся 9% процентов, для оставшегося 1% можно воспользоваться и в ручную указанием таймаута в DbManager.