我正在为我们的组织了解奥尔良。
基线以及我发现的所有"官方"文档都是使用新奥尔良内置的功能将粒度作为 blob 保存到表中。
我发现了一些使用StateMapFactory使颗粒持久保存到"常规"表和列的能力快照(我从使用SQL Server作为奥尔良存储中得到了这个)
是否有一个完整的示例来说明如何做到这一点(任何使用 SQL 服务器的简单示例都可以)。我在github项目网站上没有找到任何这样的例子。
是另一种更内置的持久化功能吗? 例如,使用 JSON/XML 序列化到表中?
是另一种更内置的持久化功能吗? 例如,使用 JSON/XML 序列化到表中?
序列化是存储提供程序的工作。 实际上,您永远不应该修改任何粒度存储,除非通过粒度使用存储提供程序。
所以 - 回答新奥尔良 1.x 和 2.x,我们仍然应该有相同的答案(至少对于 SQL Server 存储)。
使用以下其中之一
- Microsoft.Orleans.OrleansSqlUtils(一些旧版本,试图扁平化json,不确定该版本是否幸存下来)
- Orleans.StorageProviders.SimpleSQLServerStorage
这两个存储提供程序都将粒度状态作为 json 对象保存到 ntext 或 nvarchar(max) 列,或保存到 XML 列,具体取决于集群的方式。