Non puoi.
L'unico modo per farlo sarebbe avvolgere someotherRelationaldb.Save(object);
in un tentativo di cattura, e alla fine, esegui mongoCollection.Remove
Probabilmente avresti bisogno di una proprietà identificatore nota su object
e potrebbe quindi fare qualcosa del tipo:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Quindi, piuttosto disordinato, il tuo metodo di salvataggio sarebbe simile a:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Un altro modo è memorizzare una proprietà flag sull'object
che viene aggiornato dopo la scrittura riuscita su someOtherRelationaldb
Neanche questo è esattamente l'ideale, ma puoi modificare la tua query per restituire solo documenti in cui IsPersisted
flag è vero.
Nessuno di questi approcci funzionerà bene in un ambiente fortemente frammentato, anche se non credo.