Dat kan niet.
De enige manier om dit te doen is door someotherRelationaldb.Save(object);
in te pakken. in een try-catch, en bij de vangst, doe mongoCollection.Remove
U heeft waarschijnlijk een bekende identifier-eigenschap nodig voor object
en zou dan iets kunnen doen als:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Dus, nogal slordig, zou je Opslaan-methode er een beetje als volgt uitzien:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Een andere manier is om een eigenschap flag op te slaan op het object
die wordt na . geüpdatet de succesvolle schrijfactie naar someOtherRelationaldb
Dit is ook niet echt ideaal, maar je zou je zoekopdracht kunnen aanpassen om alleen documenten terug te sturen waar IsPersisted
vlag is waar.
Geen van beide benaderingen zal goed werken in een omgeving met veel shards, hoewel ik niet zou denken.