我正在为我们的组织了解奥尔良。
我发现的基线以及所有“官方”文档都是使用 Orleans 内置功能将颗粒作为 blob 持久保存到表中。
我发现了一些使用 StateMapFactory 使颗粒持久保存到“常规”表和列的能力的快照(我从 Using SQL Server as Orleans storage 获得此信息)
是否有一个完整的示例来说明如何完成此操作(任何使用 SQL Server 的简单示例都可以)。我在github项目站点上没有找到任何这样的例子。
是否还有另一个更内置的持久保存到表中的功能?例如。使用 JSON/XML 序列化到表中?
最佳答案
Is another more built-in ability to persist into tables? E.G. using JSON/XML to serialize into the tables?
序列化是 StorageProvider 的工作。实际上,除了通过 Grains 使用存储提供程序之外,您永远不应该修改任何 Grains 存储。
所以 - 对于 orleans 1.x 和 2.x 的答案,我们仍然应该有相同的答案(至少对于 sql server 存储)。
使用其中之一
- Microsoft.Orleans.OrleansSqlUtils(其中一些旧版本,试图压平 json,不确定该版本是否能够幸存)
- Orleans.StorageProviders.SimpleSQLServerStorage
这两个存储提供程序都会将grain状态作为json对象保存到ntext或nvarchar(max)列,或者保存到XML列,具体取决于集群的方式。
关于sql-server - 奥尔良 - 将 Cereal 持久保存到 'traditional' 表和列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46875128/