[英]How can I use Azure functions or logic apps to save data into sql database?
我有一个ASP.NET MVC应用程序,目前正在该应用程序中将数据保存到SQL Server数据库中。
但是我想使其松散耦合,所以这就是为什么我要将这段代码带到Azure函数或逻辑应用程序中以保存数据的原因。
目前,我使用实体框架,因为它位于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 Function或Logic App中执行相同的操作。 如果记录成千上万个,哪个会更好更快?
在这种情况下,如何实现替换FK逻辑?
这是一个体系结构问题,我强烈建议您阅读Azure体系结构文档 。 您的问题是关于一种称为命令查询责任分离或CQRS的设计模式。 您需要考虑“最终一致性”在数据库更新中的影响,这可能会导致对数据库和应用程序业务逻辑进行全面的重新设计。
我的经验是,与Azure函数相比,逻辑应用程序的安装速度更快,但是,如果您有大量数据,则Azure函数的执行速度更快,成本也更低。 您还需要考虑延迟对用户体验的可能影响。 您应该阅读Troy Hunt的这篇文章: https : //www.troyhunt.com/azure-functions-in-practice/
我主要使用Azure功能来更新Dynamics客户参与度(aka CRM),并且不得不依靠使用其他Azure功能(例如Azure Service Bus)来处理跨多个功能的工作分配以及处理失败的事务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.