Você não pode.
A única maneira de fazer isso seria envolver
someotherRelationaldb.Save(object);
em um try catch, e no catch, faça mongoCollection.Remove
Você provavelmente precisaria de uma propriedade identificadora conhecida em
object
e poderia então fazer algo como:mongoCollection.Remove(Query.EQ("_id", object.Id));
Então, um pouco desordenadamente, seu método Save ficaria um pouco parecido com:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Outra maneira é armazenar uma propriedade de sinalizador no
object
que é atualizado depois a gravação bem-sucedida em someOtherRelationaldb
Isso também não é exatamente o ideal, mas você pode modificar sua consulta para retornar apenas documentos em que
IsPersisted
bandeira é verdadeira. Nenhuma dessas abordagens funcionará bem em um ambiente fortemente fragmentado, embora eu não pense.