У меня есть приложение, которое в настоящее время использует БД Mongo.Я пытаюсь переместить приложение в Azure и пытаюсь использовать Cosmos DB.Я обновил драйвер C # Mongo DB в коде до последней версии 2.7.0, и он работает нормально, все еще используя Mongo DB.
Затем я использовал инструмент миграции Cosmos DB для переноса данных в базу данных Azure Cosmos DB.Эмулятор и изменил строку подключения в моей веб-конфигурации, чтобы указать на эмулятор.Приложение загружается, и некоторые справочные данные возвращаются на моем первом экране, но мой приведенный ниже запрос GetById не работает?
public virtual T GetById(TKey id)
{
if (typeof(T).IsSubclassOf(typeof(EntityBase)))
{
return GetById(new ObjectId(id as string));
}
//code removed for brevity
}
public virtual T GetById(ObjectId id)
{
var filter = Builders<T>.Filter.Eq("_id", id);
var result = collection.FindSync<T>(filter).FirstOrDefault();
return result;
}
В результате, когда я подключаюсь к моей базе данных Mongo в веб-конфигурации, получается однаИдентификатор объекта - однако, когда я изменяю строку подключения на эмулятор, ничего не возвращается?
Так выглядит объект в MongoDB (визуализируется с помощью RoboMongo)
{
"_id" : ObjectId("5b97a56b6381fecd00f0e10a"),
"LastUpdatedOn" : [
NumberLong(636722473812102569),
-240
],
"CreatedOn" : [
NumberLong(636722473396922518),
-240
],
"LastUpdatedBy" : "SYSTEM",
"CreatedBy" : "TestUser",
"VersionNumber" : 3,
"Name" : "Audi",
Вот тактот же объект выглядит в эмуляторе Azure Cosmos DB после миграции с помощью инструмента данных миграции
{
"_id": "5b97a56b6381fecd00f0e10a",
"LastUpdatedOn": [
636722473812102500,
-240
],
"CreatedOn": [
636722473396922500,
-240
],
"LastUpdatedBy": "SYSTEM",
"CreatedBy": "TestUser",
"VersionNumber": 3,
"Name": "Audi",
Может ли причина, по которой он не работает, в том, что Id потерял объект ("")?Я попытался обновить коллекцию Azure Cosmos DB, чтобы добавить ее, но выдает ошибку с указанием ожидаемого значения, как если бы я не указывал правильный формат JSON.