Возможно ли использовать асинхронные методы в цепочке?
var blog = new Blog();
await blog.ValidateAsync().InsertAsync().SaveAsync();
Нет. Все асинхронные методы возвращают Task, а чтобы добраться до результата таска, нужно дописать ключевое слово await. Поскольку второй метод вам нужно вызвать у результата первого таска, то нужно сперва дождаться этого таска. И так далее. Получится следующая вложенная цепочка:
await (await (await blog.ValidateAsync()).InsertAsync()).SaveAsync();
Можно оформить это костылями с использованием методов расширения, где InsertAsync() будет являться методом расширения для некоего Task<T>, где T содержит все необходимое для работы метода. Аналогично и с SaveAsync(). И остальные ожидания будут происходить уже внутри этих методов.
Однако в вашем случае не советовал бы так делать. Fluent-синтаксис хорошо в весьма определенных сценариях, а цепочка "валидация - вставка - сохранение", на мой взгляд, в них не входит. Лучше всего вызывать эти методы последовательно, не экономить на строчках и не стремиться к "красоте".
В такой цепочке - нет, нельзя.
Можно написать разве что вот так:
await (await (await blog.ValidateAsync()).InsertAsync()).SaveAsync();
Но лучше все-таки явно разделять разные операции:
await blog.ValidateAsync();
await blog.InsertAsync();
await blog.SaveAsync();
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости