Nie możesz.
Jedynym sposobem, aby to zrobić, byłoby zawinięcie someotherRelationaldb.Save(object);
w try catch, a na catch wykonaj mongoCollection.Remove
Prawdopodobnie będziesz potrzebować znanej właściwości identyfikatora na object
i mógłby wtedy zrobić coś takiego:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Tak więc, raczej nieporządnie, twoja metoda Save wyglądałaby trochę tak:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Innym sposobem jest przechowywanie właściwości flag w object
które zostanie zaktualizowane po udany zapis do someOtherRelationaldb
To też nie jest idealne, ale możesz zmodyfikować zapytanie, aby zwracało tylko dokumenty, w których IsPersisted
flaga jest prawdziwa.
Żadne z tych podejść nie zagra dobrze w mocno shardowanym środowisku, chociaż nie sądzę.