Vous ne pouvez pas.
La seule façon de faire cela serait d'envelopper someotherRelationaldb.Save(object);
dans un try catch, et sur le catch, faites mongoCollection.Remove
Vous auriez probablement besoin d'une propriété d'identifiant connue sur object
et pourrait alors faire quelque chose comme :
mongoCollection.Remove(Query.EQ("_id", object.Id));
Donc, plutôt désordonné, votre méthode Save ressemblerait un peu à :
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Une autre méthode consiste à stocker une propriété flag sur l'object
qui est mis à jour après l'écriture réussie dans someOtherRelationaldb
Ce n'est pas exactement l'idéal non plus, mais vous pouvez modifier votre requête pour ne renvoyer que les documents où IsPersisted
l'indicateur est vrai.
Aucune de ces approches ne fonctionnera bien dans un environnement fortement fragmenté, bien que je ne le pense pas.