2012-04-24 3 views
3

Я вызываю хранимую процедуру в цикле foreach и хотел бы изменить значение одного из параметров на каждой итерации. В настоящее время, похоже, нет никакого способа получить доступ к параметрам после их добавления в DynamicParameters, хотя, читая исходный код, я вижу, что DynamicParameters сохраняет внутренний словарь. Любая причина, почему это не является общедоступным или есть другой способ получить значение ParamInfos для изменения значений?Изменить значение ParamInfo после добавления в DynamicParameters?

Update

То, что я в данный момент:

foreach (var fooID in fooIDs) 
{ 
    var dynamicParameters = new DynamicParameters(); 
    dynamicParameters.Add(ParameterNames.BarID, barID); 
    dynamicParameters.Add(ParameterNames.FooID, fooID); 

    connection.Execute(ProcNames.MyProc, dynamicParameters, commandType:CommandType.StoredProcedure); 
} 
+0

http://stackoverflow.com/questions/10501319/is-there-anyway-to-iterate-through-a-dapper-dynamicparameters-object? –

+1

Сэм, я обновил свой вопрос тем, что я делаю в данный момент (что работает). То, что я хотел сделать, это объявить и создать экземпляр DynamicParameters вне цикла, а затем обновить только один из параметров до вызова хранимой процедуры каждый раз. Это то, что делает пример в вашей ссылке? Благодарю. – alimbada

ответ

2

Существует никакой реальной причины DynamicParameters не настолько секрет о том, что она делает, ParamInfo класс может подвергаться и я был бы рад предоставить правильные свойства итерации/модификации и/или методы. Если вы чувствуете, что хотите подать заявку, отправьте патч.

В то же время вы можете просто реализовать IDynamicParameters, который является тривиальным интерфейсом, который мы используем, чтобы отправить его в базовую команду в вашем приложении. Вы можете использовать DynamicParameters в качестве отправной точки.