Bạn không thể.
Cách duy nhất để làm điều này là bọc someotherRelationaldb.Save(object);
trong một lần bắt thử và khi bắt, hãy thực hiện mongoCollection.Remove
Bạn có thể cần một thuộc tính số nhận dạng đã biết trên object
và sau đó có thể làm điều gì đó như:
mongoCollection.Remove(Query.EQ("_id", object.Id));
Vì vậy, khá rắc rối, phương thức Lưu của bạn sẽ trông giống như sau:
private void Save(object)
{
mongoCollection.Save(object);
try
{
someotherRelationaldb.Save(object);
}
catch
{
mongoCollection.Remove(Query.EQ("_id", object.Id));
}
}
Một cách khác là lưu trữ thuộc tính cờ trên đối tượng object
được cập nhật sau ghi thành công vào someOtherRelationaldb
Điều này cũng không hoàn toàn lý tưởng, nhưng bạn có thể sửa đổi truy vấn của mình để chỉ trả về các tài liệu trong đó IsPersisted
cờ là đúng.
Cả hai cách tiếp cận này sẽ không hoạt động tốt trong một môi trường bị chia cắt nhiều mặc dù tôi không nghĩ.