我目前正在将我的机器人框架v3迁移到v4。
有没有办法将机器人状态存储在SQL数据库中?
我在这里看到了关于Bot State的文档:
但它只能保存在CosmoDB或Azure Storage上。目前还没有关于bot框架v4中保存状态的文档
在我的机器人框架v3中,我有这个代码,它将机器人状态保存到SQL数据库中:
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具有类似的功能
发布于 2019-07-26 02:35:32
机器人框架社区已经为机器人构建器V4提供了EntityFramework存储。源代码可以在here中找到,该库可以作为nuget包Bot.Builder.Community.Storage.EntityFramework提供
它的使用方式与其他V4 IStorage提供程序相同:
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
https://stackoverflow.com/questions/57200930
复制相似问题