Не можете.
Единственият начин да направите това е да обвиете someotherRelationaldb.Save(object);
в try catch и на catch направете mongoCollection.Remove
Вероятно ще ви е необходимо свойство на известен идентификатор на object
и след това може да направи нещо като:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Така че, доста неподредено, вашият метод за запазване би изглеждал малко така:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Друг начин е да съхраните свойство на флаг върху object
които се актуализират след успешният запис в someOtherRelationaldb
Това също не е идеално, но можете да промените заявката си така, че да връща само документи, където IsPersisted
флагът е верен.
Нито един от тези подходи няма да работи добре в среда със силно разделение, въпреки че не бих си помислил.