Как я могу использовать функции Azure или приложения логики для сохранения данных в базе данных sql? - PullRequest
0 голосов
/ 27 января 2019

У меня есть приложение ASP.NET MVC, из которого я сейчас сохраняю данные в базу данных SQL Server.

Но я хочу, чтобы оно было слабосвязанным, поэтому я хочу вынуть этот кодв функцию Azure или в приложение логики для сохранения данных.

В настоящее время я использую Entity Framework, так как он находится внутри приложения ASP.NET MVC.

Вот пример кода, который у меня есть:

private async Task SaveDatabaseAsync(List<Device> deviceDataList)
{
    // save device information into database
    _Repository.InsertMultipleDevices(deviceDataList); // used AddRange

    await _Repository.SaveAsync();

    // save message data information into database
    await SaveMessageData(deviceList);
}

private async Task SaveMessageData(List<Device> deviceListData , List<MessageData> messageDataList)
{
    // replace device id PK because device id is FK in Message table which is previously saved SaveDeviceToDatabaseAsync
    foreach (var messageData in messageDataList)
    {
        var deviceData = deviceListData.FirstOrDefault(t => Convert.ToInt32(t.Id.ToString()) == messageData.Id);
        messageData.Id = deviceData?.Id ?? 0;
    }

    MessageDataRepository _messageDataRepository = new MessageDataRepository(new IoTSimulatordbContext());
    _messageDataRepository.InsertMessageDataMultiple(messageData); // used AddRange
    await _messageDataRepository.SaveAsync();
}

Теперь я пытаюсь сделать то же самое в функции Azure или приложении логики.Что будет лучше и быстрее, если записи будут в тысячах?

Как добиться замены логики FK в этом случае?

1 Ответ

0 голосов
/ 28 января 2019

Это вопрос архитектуры, и я настоятельно рекомендую вам прочитать документацию по архитектуре Azure .Ваш вопрос задает вопрос о шаблоне разработки, называемом Разделение ответственности по запросам команд, или CQRS.Необходимо учитывать влияние «возможной согласованности» в обновлениях базы данных, что может привести к полной переработке вашей базы данных и бизнес-логики приложения.

По моему опыту, приложение логики будет быстрее (э) настраиваться, чем функция Azure, однако функции Azure будут работать быстрее и будут дешевле, если у вас много данных.Вам также необходимо учитывать возможное влияние задержки на взаимодействие с пользователем.Вам следует прочитать эту статью Троя Ханта: https://www.troyhunt.com/azure-functions-in-practice/

В основном я использовал функции Azure для обновления Dynamics Customer Engagement (aka CRM), и мне приходилось полагаться на использование других функций Azure, таких как Azure.Шина обслуживания для управления распределением работы между несколькими функциями и обработки неудачных транзакций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...