gpt4 book ai didi

c# - 如何使用Azure函数或逻辑应用将数据保存到sql数据库中?

转载 作者:行者123 更新时间:2023-12-02 08:01:55 27 4
gpt4 key购买 nike

我有一个 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逻辑?

最佳答案

这是一个架构问题,我强烈建议您阅读 Azure Architecture documentation 。您的问题是询问一种称为命令查询职责分离(CQRS)的设计模式。您需要考虑数据库更新中“最终一致性”的影响,这可以插入数据库和应用程序业务逻辑的彻底重新设计。

我的经验是,逻辑应用程序的设置速度比 Azure Functions 更快,但如果您有大量数据,Azure Functions 的执行速度会更快且成本更低。您还需要考虑延迟对用户体验可能产生的影响。您应该阅读 Troy Hunt 的这篇文章:https://www.troyhunt.com/azure-functions-in-practice/

我主要使用 Azure Functions 来更新 Dynamics Customer Engagement(又名 CRM),并且必须依赖使用其他 Azure 功能(例如 Azure 服务总线)来处理跨多个功能的工作分配以及处理失败的事务。

关于c# - 如何使用Azure函数或逻辑应用将数据保存到sql数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54391018/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com