如何使用 Azure 函数或逻辑应用程序将数据保存到 sql 数据库中?
How can I use Azure functions or logic apps to save data into sql database?
我有一个 ASP.NET MVC 应用程序,我目前正在将数据保存到 SQL 服务器数据库中。
但我想让它松散耦合,这就是为什么我想将此代码取出到 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逻辑?
这是一个架构问题,我强烈建议您阅读Azure Architecture documentation。您的问题是询问一种称为命令查询责任分离或 CQRS 的设计模式。您需要考虑 "eventual consistency" 对数据库更新的影响,这可能会推动您对数据库和应用程序业务逻辑进行彻底的重新设计。
我的经验是逻辑应用程序比 Azure Functions 设置起来更快,但是如果您有大量数据,Azure Functions 将执行得更快并且更便宜。您还需要考虑延迟对用户体验的可能影响。
您应该阅读 Troy Hunt 的这篇文章:https://www.troyhunt.com/azure-functions-in-practice/
我主要使用 Azure Functions 来更新 Dynamics Customer Engagement(又名 CRM),我不得不依赖使用其他 Azure 功能(例如 Azure 服务总线)来处理跨多个功能的工作分配,以及处理失败的事务。
我有一个 ASP.NET MVC 应用程序,我目前正在将数据保存到 SQL 服务器数据库中。
但我想让它松散耦合,这就是为什么我想将此代码取出到 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逻辑?
这是一个架构问题,我强烈建议您阅读Azure Architecture documentation。您的问题是询问一种称为命令查询责任分离或 CQRS 的设计模式。您需要考虑 "eventual consistency" 对数据库更新的影响,这可能会推动您对数据库和应用程序业务逻辑进行彻底的重新设计。
我的经验是逻辑应用程序比 Azure Functions 设置起来更快,但是如果您有大量数据,Azure Functions 将执行得更快并且更便宜。您还需要考虑延迟对用户体验的可能影响。 您应该阅读 Troy Hunt 的这篇文章:https://www.troyhunt.com/azure-functions-in-practice/
我主要使用 Azure Functions 来更新 Dynamics Customer Engagement(又名 CRM),我不得不依赖使用其他 Azure 功能(例如 Azure 服务总线)来处理跨多个功能的工作分配,以及处理失败的事务。