No puede.
La única forma de hacer esto sería envolver someotherRelationaldb.Save(object);
en una captura de prueba, y en la captura, haga mongoCollection.Remove
Probablemente necesite una propiedad de identificador conocido en object
y luego podría hacer algo como:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Entonces, bastante desordenado, su método Guardar se vería un poco como:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Otra forma es almacenar una propiedad de marca en el object
que se actualiza después la escritura exitosa en someOtherRelationaldb
Esto tampoco es exactamente ideal, pero puede modificar su consulta para que solo devuelva documentos donde IsPersisted
la bandera es verdadera.
Ninguno de estos enfoques funcionará bien en un entorno muy fragmentado, aunque no lo creo.