Я пробую Azure DocumentDB, и все работает нормально, но когда я сравниваю его с хранилищем таблиц Azure, кажется, что чтение документов становится медленным, когда у меня более 1000 документов.
Вот фрагмент, который у меня есть:
public class DocumentDBProvider
{
private static string EndpointUrl = "https://YourDocumentDbName.documents.azure.com:443/";
private static string AuthorizationKey = "Take this code from your Azure Management Portal";
private static string DatabaseName = "InterviewDB";
private static string DocumentCollectionName = "InterviewCollection";
public async Task<DocumentCollection> CreateDatabaseAndDocumentCollection()
{
var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
Database database = await client.CreateDatabaseAsync(new Database { Id = DatabaseName });
DocumentCollection documentCollection = await client.CreateDocumentCollectionAsync(database.CollectionsLink,
new DocumentCollection { Id = DocumentCollectionName }
);
return documentCollection;
}
public string GetDocumentLink()
{
var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
Database database = client.CreateDatabaseQuery().Where(db => db.Id == DatabaseName).AsEnumerable().FirstOrDefault();
DocumentCollection documentCollection = client.CreateDocumentCollectionQuery(database.CollectionsLink).Where(db => db.Id == DocumentCollectionName).AsEnumerable().FirstOrDefault();
return documentCollection.DocumentsLink;
}
public DocumentClient GetClient()
{
return new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
}
public List<Candidate> GetCandidateById(int candidateId)
{
var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
Database database = client.CreateDatabaseQuery().Where(db => db.Id == DatabaseName).AsEnumerable().FirstOrDefault();
DocumentCollection documentCollection = client.CreateDocumentCollectionQuery(database.CollectionsLink).Where(db => db.Id == DocumentCollectionName).AsEnumerable().FirstOrDefault();
return client.CreateDocumentQuery<Candidate>(documentCollection.DocumentsLink).Where(m => m.CandidateId == candidateId).Select(m => m).ToList();
}
}
Любые идеи, что может заставить его загружаться медленно, вызывая функцию GetCandidateById, когда я вызываю ее 1000 раз?