Vous ne pouvez pas.
La seule façon de le faire serait d'envelopper someotherRelationaldb.Save(object);
dans une prise d'essai, et sur les prises, faire mongoCollection.Remove
Vous auriez probablement besoin d'un identifiant de propriété connu sur object
et pourrait faire quelque chose comme:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Ainsi, plutôt untidily, votre méthode Save ressemblerait un peu comme:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
une autre façon est de stocker une propriété de drapeau sur le object
qui get mis à jour après l'écriture réussie à someOtherRelationaldb
Ce n'est pas exactement l'idéal non plus, mais vous pouvez modifier votre requête docs seulement de retour où IsPersisted
drapeau est vrai.
Aucune de ces approches vont jouer bien dans un environnement fortement fragmentées même si je ne pense pas.
merci .. que je pensais .. et mon sauver pourrait être soit mise à jour ou insérer – ajp
:) dans le cas d'une mise à jour, vous voudrez peut-être pas retirer le doc .. mais revenir à la dernière version avant la mise à jour ? Juste quelque chose à garder à l'esprit – Alex