我使用Xamarin Forms和Shared項目使用Azure NOSQL DocumentDB連接到DocumentDB。我有一個連接到數據庫的服務:DocumentDb - DocumentClient生命週期管理
public class PaymentService : IPaymentService<Payment>, IDisposable
到目前爲止,我一直保持着類級別屬性爲客戶:
public DocumentClient Client { get; set; }
我在Dispose方法處置。
服務類有一次我叫一個連接方法,在我所有的方法GETALL,GetSingle,更新重用它的構造函數,刪除等
public void Connect()
{
try
{
if (Client == null)
{
Client = new DocumentClient(new Uri(SUBSCRIPTION_URL), PRIMARY_KEY);
}
}
catch (DocumentClientException de)
{
...
}
catch (Exception e)
{
...
}
}
我已經看到了一些文章,其中DocumentClient是使用每個方法的語句在中按請求進行管理。
public async Task<bool> Delete(string guid)
{
using (var client = new DocumentClient(new Uri(SUBSCRIPTION_URL), PRIMARY_KEY))
{
var result = await client.DeleteDocumentAsync(UriFactory.CreateDocumentUri(DATABASE_ID, COLLECTION_ID, guid));
var item = GetSingle(guid);
if (item != null)
{
return false;
}
return true;
}
}
我已經嘗試了這兩種方法,但發現使用using語句非常慢。
我的問題是:什麼被認爲是管理DocumentClient生命週期的最佳實踐?
嘿那裏謝謝你的答案 - 我走了你描述的路線。我看到的文章是從MS - https://msdn.microsoft.com/library/azure/microsoft.azure.documents.client.documentclient.upsertdocumentasync.aspx我可能已經把它取出了上下文。單實例是基於性能的方式。 –