Det kan du ikke.
Den eneste måde at gøre dette på ville være at pakke someotherRelationaldb.Save(object);
i en try catch, og på catch, skal du mongoCollection.Remove
Du har sandsynligvis brug for en kendt identifikator på object
og kunne så gøre noget som:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Så temmelig uryddeligt ville din Gem-metode se lidt ud som:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
En anden måde er at gemme en flagegenskab på object
der bliver opdateret efter den vellykkede skrivning til someOtherRelationaldb
Dette er heller ikke helt ideelt, men du kan ændre din forespørgsel til kun at returnere dokumenter, hvor IsPersisted
flag er sandt.
Ingen af disse metoder vil spille godt i et stærkt sønderdelt miljø, selvom jeg ikke ville tro.