Сегодня наткнулась на такой вот метод:
Конечно, сразу заинтересовало, что делает VouchersSrv.GetCustomerAdressID():
Что же это получается? В цикле создается DataContext и делается чтение из таблицы _vouchers? Расточительно как минимум. Надо что-то с этим делать.
Во-первых, метод GetCustomerAdressID() будто бы прилеплен сбоку. Надо перенести его в другой класс. Сначала нужно посмотреть, где ещё используется это метод ( Shift-F12 в VisualStudio). Отлично, в одном месте. Теперь, чтобы не создавать датаконтекст каждый раз, нужно метод сделать обычным, а не статичным, и вынести DataContext как закрытый член класса. Получилось вот так:
Очевидна маленькая проблема - контекст создали, а где мы его уничтожим? Конечно, GC подчистит, но на случай форс-мажора лучше реализовать IDisposable:
Ну и вот, что получилось в вызывающем методе:
0 коммент.:
Отправить комментарий