Anda tidak bisa.
Satu-satunya cara untuk melakukannya adalah dengan membungkus someotherRelationaldb.Save(object);
dalam tangkapan percobaan, dan pada tangkapan, lakukan mongoCollection.Remove
Anda mungkin memerlukan properti pengenal yang dikenal di object
dan kemudian dapat melakukan sesuatu seperti:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Jadi, agak tidak rapi, metode Simpan Anda akan terlihat seperti:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Cara lain adalah dengan menyimpan properti flag pada object
yang diperbarui setelah yang berhasil menulis ke someOtherRelationaldb
Ini juga tidak terlalu ideal, tetapi Anda dapat mengubah kueri untuk hanya mengembalikan dokumen di mana IsPersisted
bendera itu benar.
Tak satu pun dari pendekatan ini akan berfungsi dengan baik di lingkungan yang sangat ter-sharding meskipun menurut saya tidak.