Я разрабатываю веб-службу .NET, пытаясь поддерживать многоуровневую архитектуру, которая поддерживает мои модели в одном проекте и доступ к БД (DAL) в другом. Идея заключается в том, что, если мне нужно изменить технологию БД, это просто вопрос создания DELL differnet, в то время как остальная часть приложения остается неизменной..NET, многоуровневая архитектура и MongoDB - Что использовать в качестве идентификатора?
На уровне доступа к данным, который я разрабатываю, я использую Mongo DB C# Driver.
Я видел, что:
Properties под названием "ID" будет отображаться на C# драйвер как "_id" в базы данных (конвенции по конфигурации);
Int + Auto-increment in MongoDB is not a good idea;
Использование Guid's as ID в MongoDB isn't a good idea either;
Рекомендуемый тип данных для идентификатора документов, хранящихся в MongoDB, -
ObjectID
. Драйвер C# предоставляет класс для представления этого;- Однако, если использовать этот тип данных (от
MongoDB.Bson
) в моих моделях, то они становятся зависимыми от # Драйвера MongoDB C, и я не хочу, что: Я хочу, чтобы мои модели быть DB-независимым; только мои DAL могут зависеть от любых технологий доступа к данным, которые я использую.
- Однако, если использовать этот тип данных (от
Так какой тип данных следует использовать для идентификаторов моих Pocos' для того, чтобы иметь гарантии уникальности в БД? Будет ли строковое представление Guid быть ужасным с точки зрения производительности?
Ваш отзыв приветствуется.
Зачем голосовать, чтобы закрыть это? Это вполне разумный вопрос. Не слишком конкретны. –