在dapr中使用ORM

问题描述 投票:0回答:2

目前我正在学习Dapr,我发现它对于微服务开发来说很强大,但是阅读更多后,我发现了一些局限性,其中最重要的是“状态管理”。

我们如何使用 EF Core 或 Dapper 等工具与 Dapr 中的数据库进行交互? DaprClient 类是与数据库交互的唯一方式吗?

sql entity-framework-core dapr
2个回答
6
投票

您应该继续将这些 ORM 与 Dapr 一起使用,因为它不能替代它们。 ORM 已经充当关系存储数据的转换层(存储库层)。状态管理是简单的 KVP 存储,具有一些最小的查询能力。将您的状态视为字典,其中该对象可以是任何简单或复杂的对象。这非常适合 Redis、DynamoDB、MongoDB、Cassandra 等技术。同样,您放入缓存的内容就是您放入状态存储的内容。因此,您仍然可以(并且应该)在您的服务中拥有一个用于关系数据的 ORM,并传入提供者的运行时配置、连接字符串等,同时能够通过 DaprClient、HTTPClient 或 GRPC 客户端利用 Dapr 的所有其他功能.

额外的好处,通过 EFCore/EF 中的许多提供程序,您可以添加跟踪标头 (https://github.com/opentracing-contrib/csharp-netcore),它将无缝插入到 Dapr 免费提供的跟踪中。这样,您将看到完整的端到端跟踪,贯穿您的状态和关系数据


0
投票

很好的答案。只是想知道是否有人实现了像sequelize 和dapr 这样的ORM?以及它是如何实现的。

© www.soinside.com 2019 - 2024. All rights reserved.