首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SQL保存ConversationState和UserState机器人框架v4

如何使用SQL保存ConversationState和UserState机器人框架v4
EN

Stack Overflow用户
提问于 2019-07-25 19:29:56
回答 1查看 401关注 0票数 1

我目前正在将我的机器人框架v3迁移到v4。

有没有办法将机器人状态存储在SQL数据库中?

我在这里看到了关于Bot State的文档:

https://docs.microsoft.com/da-dk/azure/bot-service/migration/net-migration-quickreference?view=azure-bot-service-4.0&viewFallbackFrom=azure-bot-service-3.0

但它只能保存在CosmoDB或Azure Storage上。目前还没有关于bot框架v4中保存状态的文档

在我的机器人框架v3中,我有这个代码,它将机器人状态保存到SQL数据库中:

代码语言:javascript
复制
var store = new SqlBotDataStore(ConfigurationManager.ConnectionStrings["statedb"].ConnectionString);          
        Conversation.UpdateContainer(
           builder =>
           {
               builder.Register(c => store)
                    .Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)
                    .AsSelf()
                    .SingleInstance();

               builder.Register(c => new CachingBotDataStore(store,
                          CachingBotDataStoreConsistencyPolicy
                          .ETagBasedConsistency))
                          .As<IBotDataStore<BotData>>()
                          .AsSelf()
                          .InstancePerLifetimeScope();

               builder.RegisterModule(new ReflectionSurrogateModule());

               builder.RegisterModule<GlobalMessageHandlersBotModule>();
           });

我希望bot框架v4具有类似的功能

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-26 02:35:32

机器人框架社区已经为机器人构建器V4提供了EntityFramework存储。源代码可以在here中找到,该库可以作为nuget包Bot.Builder.Community.Storage.EntityFramework提供

它的使用方式与其他V4 IStorage提供程序相同:

代码语言:javascript
复制
var entityFrameworkStorage = new EntityFrameworkStorage(Config["SqlConnectionString"]);
services.AddSingleton<IStorage>(dataStore);
services.AddSingleton<UserState>();
services.AddSingleton<ConversationState>();

更多信息可以在这里找到:

https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-state

https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-v4-state

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57200930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档