Я использую шаблон репозитория. Мои методы репозитория получают необязательный параметр IClientSessionHandle, который по умолчанию равен нулю. Часть каждого метода подготавливает фильтры / обновления / et c., Затем выполняется вызов. Поскольку сеанс является необязательным, у меня есть что-то вроде этого:
if (sessionHandle != null)
await Collection.InsertOneAsync(sessionHandle, myObject);
else
await Collection.InsertOneAsync(myObject);
Я полагаю, что всегда отправка сеанса, нулевая или нет, не будет работать, но я еще не проверял это. Кроме того, даже если бы это действительно сработало, у меня не было бы никакой гарантии, что это поведение не изменится в будущем, поскольку оно не является частью контракта.
Есть ли способ сделать один звонок?
PS. Причиной использования необязательного IClientSessionHandle является повторное использование одних и тех же методов хранилища в транзакции или нет.