Представьте, что вы выполняете этот код в веб-запросе, при вызове метода поиска поток запроса будет заморожен до тех пор, пока результат возврата базы данных не будет вызван вызовом синхронизации, если это длинная операция с базой данных, для которой требуется несколько секунд, вы будете есть один из потоков, доступных для обслуживания веб-запроса, ничего не делая, просто ожидая, что база данных вернет результаты и потратит впустую ценные ресурсы (количество потоков в пуле потоков ограничено).
С FindAsync поток вашего веб-запрос будет бесплатным, пока ожидает базы данных для возврата результатов, это означает, что во время обращения к базе данных этот поток может посещать другой веб-запрос. Когда база данных возвращает результат, код продолжает выполнение.
Для длительных операций, таких как чтение / запись из файловой системы, операции с базой данных, общение с другими службами, рекомендуется использовать асинхронные вызовы. Поскольку пока вы ожидаете результатов, потоки доступны для обслуживания другого веб-запроса. Это более масштабируемо.
Взгляните на эту статью Microsoft https://msdn.microsoft.com/en-us/magazine/dn802603.aspx .
Я предполагаю, что мое эмпирическое правило должно использовать помощника, чтобы создать единственную "единицу" дисплея - как промежуток, содержащий ссылку - и использовать частичное для создания более комплексной единицы дисплея, состоявшего больше чем из одной "единицы" дисплея - как сетка или меню.
Частичным является фрагмент представления, часть представления, которое полезно в нескольких местах и вытащено, чтобы удалить дублирование. Нижняя строка, однако, то, что представления - автономный или неравнодушный - для представления.
, Как Вы знаете, контроллеры для обработки логики. Неизбежно, однако, что Вам будет нужна некоторая обработка логики при представлении представления. Так, например, если у Вас есть некоторая часть представления, которая только доступна администраторам, Вы могли бы извлечь ту логику помощнику и сохранить представление "чистым" и только для представления. Помощники будут неизбежно содержать код представления - теги HTML и такой - но это - побочный продукт их использования, не их первичной функции.
можно также объединить два - частичное для администраторского представления и другой для пользовательского представления и помощника с логикой для определения, какой представляется в конкретной ситуации.
Просто мои.02$.
Я использую помощников, когда код, вероятно, будет использоваться снова в других проектах и partials для кода, характерного для проекта.
Я использую partials в качестве подшаблонов (т.е. что-то с большим количеством разметки, которая привыкает снова и снова, как аннотация сообщения в блоге), и помощники для обработки дисплея больше логических-y вещей (отделение, это только видимо администраторам, например).