Я помещаю свой код. net здесь для справки, он поможет вам написать ваш весенний код.
Вам необходимо создать одну учетную запись в базе данных и получить ключи (DatabaseEndPoint
& DatabaseKey
). Затем все, что вы можете создать динамически, например, базу данных, коллекцию и т. Д. c. исходя из вашего арендатора.
In. net, я использую инъекцию зависимостей для внедрения IDocumentClient
. ниже моя конфигурация
string databaseEndPoint = ConfigurationManager.AppSettings["DatabaseEndPoint"]; //Get from config file
string databaseKey = ConfigurationManager.AppSettings["DatabaseKey"];//Get from config file
services.AddSingleton<IDocumentClient>(new DocumentClient(new System.Uri(databaseEndPoint), databaseKey,
new ConnectionPolicy
{
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp,
RequestTimeout = TimeSpan.FromMinutes(5),//Groupasset sync has some timeout issue with large payload
// Customize retry options for Throttled requests
RetryOptions = new RetryOptions()
{
MaxRetryAttemptsOnThrottledRequests = 5,
MaxRetryWaitTimeInSeconds = 60
}
}
));
BaseDAO / BaseRepository
public abstract class BaseDao : IBaseDao
{
protected readonly IDocumentClient client;
protected BaseDao(IDocumentClient client)
{
this.client = client;
}
/// <summary>
/// Create Document in Database
/// </summary>
/// <param name="databaseId">database name</param>
/// <param name="collectionId">collection name</param>
/// <param name="document">document object</param>
/// <returns></returns>
public virtual async Task<string> CreateAsync(string databaseId, string collectionId, JObject document)
{
Document response = await client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(databaseId, collectionId), document);
return response.Id;
}
}
Создание класса DAO / Repository и наследование от базового DAO.
В моем В этом сценарии мы создаем базу данных на основе tenant
имени, например, Google, Microsoft et c. на основе пользователя (bill@microsoft.com) все запросы выполняются в одной (Microsoft) базе данных.