Re[7]: dynamic - пригождалось ли в вашей практике?
От: VladCore  
Дата: 30.08.19 07:58
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

VC>>а если там, в row, внутри public property int Ver32Bit { get; }

MA> Тогда видимо динамик тем более не нужен же.

VC>>2.

VC>>ну и семантически идея поъожа на анонимные типы — не надо локальные только данные отжельно описывать в коде.
VC>>разница есть конечно и большая, те в compile time генерятся а те в runtime.
MA> Ничего не понял. Там в даппере вроде бы DapperRow? по сути является очень тупеньким хранилищем этой строки, и интерфейсом навроде IDictionary<string, object>. Таким образом никакая механика не позволит перейти от маппинга значений по именам полей к ординалам, но только теперь код делает дохрена всего неявно. Ну, это на мой личный вкус. Тут уже не раз указывали, что применяют динамик ради синтаксиса.

VC>>3. всякие рефаткоринги Get<T>("field") могут понять а могут и не понять

MA> А им строго не надо туда лезть. Основание менять имена полей — только изменение строки запроса. Во всех остальных случаях это вредительство. Если есть рефакторинги которые такое распознают... ну ок. У меня в студии таких правда нет.

Ты не понял. Сейчас да, DapperRow который реализует IReadOnlyDictionary, но с dynamic это всего лиш внутренняя реализация.

Stackoverflow команде никто не мешает поменять реализацию — заемитиьть

class <>Row_42 { 
  public int Ver32Bit { get; }
  public string Level { get; }
  public string UpdateLevel {get; }
  ... 
}


и замемитить итератор:
public IEnumerable<<>Row_42> GetResultset{
  while(reader.ReadNext())
  {
     yeild return new <>Row_42(........);
  }
}


Как в Linq2Db я хз, но наверно что то похожее?
Отредактировано 30.08.2019 8:01 VladCore . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.