sql-server - 奥尔良 - 将 Cereal 持久保存到 'traditional' 表和列中

标签 sql-server persistent-storage orleans

我正在为我们的组织了解奥尔良。

我发现的基线以及所有“官方”文档都是使用 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/

相关文章:

sql-server - "> sql.txt && sql -h-1 -i sql.txt && del sql.txt"命令是什么意思?

encryption - 静态数据的 Redis 加密

c# - 为什么奥尔良筒仓在更改“打招呼”示例以支持主机和 Cereal 后开始失败?

c# - 是否可以运行托管在 Windows 服务中的 Orleans

c# - Log4Net 和奥尔良

sql-server - SQL EncryptByKey 不适用于插入,适用于更新

C# 报表向导和 Entity Framework

sql - 如何在 SQL 查询中获取不同值

ios - 删除未引用的未使用的持久数据

python - 迭代相同的 freezeset 是否保证始终以相同的顺序生成项目? (Python 3)