Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Bot框架中从数据库中获取Bot活动消息?_C#_Sql_Botframework - Fatal编程技术网

C# 如何在Bot框架中从数据库中获取Bot活动消息?

C# 如何在Bot框架中从数据库中获取Bot活动消息?,c#,sql,botframework,C#,Sql,Botframework,我正在从事一个小型项目,在Bot框架上进行自我开发。我需要一些帮助。我希望从数据库中获取Bot会话(只有Bot而不是用户)。我知道如何使用静态文本发送活动并获得用户响应,正如我在下面所做的那样 我有以下代码: private static async Task<DialogTurnResult> NameConfirmStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)

我正在从事一个小型项目,在Bot框架上进行自我开发。我需要一些帮助。我希望从数据库中获取Bot会话(只有Bot而不是用户)。我知道如何使用静态文本发送活动并获得用户响应,正如我在下面所做的那样

我有以下代码:

private static async Task<DialogTurnResult> NameConfirmStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        var promptOptions = new PromptOptions
        {
            Prompt = MessageFactory.Text($"Hello ! My name is XYZ and I am the Manager of ABC Dept.")
        };
    return await stepContext.PromptAsync(nameof(TextPrompt), promptOptions, cancellationToken);
    }

    private static async Task<DialogTurnResult> NameStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
    {
        stepContext.Values["intro"] = ((FoundChoice)stepContext.Result);
        return await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = MessageFactory.Text("What is your name?") }, cancellationToken);
    }
private静态异步任务名称confirmStepAsync(WaterAllStepContext stepContext,CancellationToken CancellationToken)
{
var prompoptions=新的prompoptions
{
Prompt=MessageFactory.Text($“你好!我叫XYZ,是ABC部门的经理”)
};
返回wait wait stepContext.PromptAsync(名称(TextPrompt)、提示、取消令牌);
}
专用静态异步任务名称StepAsync(WaterCallStepContext stepContext,CancellationToken CancellationToken)
{
stepContext.Values[“intro”]=((FoundChoice)stepContext.Result);
return wait-stepContext.PromptAsync(nameof(TextPrompt),newpromptoptions{Prompt=MessageFactory.Text(“您的名字是什么?”)},cancellationToken);
}
以上代码用于一旦用户说了什么,Bot的活动

然而,我想知道是否有一种方法可以从数据库中读取Bot Turn活动

例如:

机器人:你好

:你好

机器人:你叫什么名字

Me:XYZ

所以我想要的是机器人的活动文本,比如你好你叫什么名字?应该来自数据库(最好是SQL)。这可能吗


我正在使用Bot Framework v4.0 Emulator进行本地测试。

首先要了解的是,Bot只是web应用程序。如何从数据库将数据导入bot的问题只是如何从数据库读取数据的问题,而与bot无关。您的问题根本无法回答,因为您尚未选择特定的数据库管理系统。如果您的数据位于bot可以访问的数据库中(比如使用restapi),那么答案是肯定的

在Cosmos DB等数据库中存储数据是Bot框架中已经内置的一项功能,但这与Bot状态有关,Bot状态是帮助Bot跟踪特定用户和对话的数据。听起来您需要的是定义bot的静态数据,而不是特定于任何特定用户或会话的数据。C#应用程序在资源文件中存储字符串是很常见的,而Bot框架有一个您可能感兴趣的即将推出的功能,但是如果您真的想从数据库中提取字符串,请继续。由于您甚至还没有决定要使用什么DBMS,所以您需要弄清楚如何做到这一点,但我可以告诉您,无论如何,您这样做的方式都不是特定于bot的


关于Bot框架方面的问题,请查看以了解更多信息。

我的回答可以接受吗?