Восстановление в Mongo DB и проблема ID

У меня есть проблема во время возникновения в Mongo DB с помощью официального драйвера C #.

public abstract class AggregateRoot
{
    /// <summary>
    /// All mongoDb documents must have an id, we specify it here
    /// </summary>
    protected AggregateRoot()
    {
        Id = ObjectId.GenerateNewId();
    }

    [BsonId]
    public ObjectId Id { get; set; }
}

Мои сущности уже имеют ID-S, но мне пришлось создать конкретный идентификатор Mongo для его работы, поскольку все документы в коллекции должны иметь один. Теперь я получаю новую сущность в моей системе, создается новый идентификатор Mongo, и я получаю Mongo Mongo не может изменить _id документа старого исключения. Есть ли работа - вокруг?

позвольте мне немного описать дизайн. Все объекты, которые были бы хранится как документы наследовали от агрегата, которые имели Идентификационное поколение в нем. Каждый поддеситель имел свой идентификатор автоматически, и у меня не было проблем с этим. Идентификатор в агрегатере был представлен, чтобы исправить проблему при получении данных из Mongocollection к списку и поколение было введено так, чтобы идентификатор разные. Теперь мы можем переместить это генерацию ID для экономии методов Потому что новое предприятие для обновления имела новое образование идентификатора. Но это будет означать, что каждый разработчик в команде не должен забывать генерацию ID-S в репозитории, который является рискованным. Было бы лучше просто игнорировать удостоверение личности чем сопоставление из Монго, если это возможно и не иметь Агрегаторный класс вообще

16
задан Yurii Hohan 2 September 2011 в 14:32
поделиться