Как при желании передать IClientSessionHandle с помощью драйвера C# MongoDB? - PullRequest
1 голос
/ 15 января 2020

Я использую шаблон репозитория. Мои методы репозитория получают необязательный параметр IClientSessionHandle, который по умолчанию равен нулю. Часть каждого метода подготавливает фильтры / обновления / et c., Затем выполняется вызов. Поскольку сеанс является необязательным, у меня есть что-то вроде этого:

if (sessionHandle != null)
    await Collection.InsertOneAsync(sessionHandle, myObject);
else
    await Collection.InsertOneAsync(myObject);

Я полагаю, что всегда отправка сеанса, нулевая или нет, не будет работать, но я еще не проверял это. Кроме того, даже если бы это действительно сработало, у меня не было бы никакой гарантии, что это поведение не изменится в будущем, поскольку оно не является частью контракта.

Есть ли способ сделать один звонок?

PS. Причиной использования необязательного IClientSessionHandle является повторное использование одних и тех же методов хранилища в транзакции или нет.

...