У меня есть проект BotFramework, который я построил с помощью Azure со встроенным LUIS API для языковой обработки. В моем файле BasicLuisDialog.cs я хочу добавить призыв к действию, чтобы один из LuisIntents был запросом к базе данных SQL, который принимает запростекст, введенный пользователем в бот, запросите это имя в базе данных SQL, а затем верните сведения об этом человеке.
В настоящее время я добавил это в файл BasicLuisDialog.cs под намерением, к которому я хочу запросить запрос:
[LuisIntent("Who_is_Employee")]
public async Task Who_is_EmployeeIntent(IDialogContext context, LuisResult result)
{
EntityRecommendation recommendation;
if(result.TryFindEntity("employee_name", out recommendation))
{
string role = EmployeeService.FindEmployee(recommendation.Entity);
await context.PostAsync(" " + role);
}
Я создал EmployeeService.cs
using LuisBot.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace LuisBot.Service
{
public class EmployeeService
{
public static string FindEmployee(string name)
{
string title = null;
using(EmployeeDb db = new EmployeeDb())
{
var rec = db.vw_Everyone.Where(c => c.givenName == name).FirstOrDefault();
title = rec.title;
}
return title;
}
}
}
Я создал EmployeeDb.cs:
namespace LuisBot.Model
{
using System;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
public partial class EmployeeDb : DbContext
{
public EmployeeDb()
: base("name=EmployeeDb")
{
}
public virtual DbSet<vw_Everyone> vw_Everyone { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
}
И представление SQL, которое называется vw.Everyone.cs:
namespace LuisBot.Model
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
public partial class vw_Everyone
{
[StringLength(256)]
public string mail { get; set; }
[StringLength(256)]
public string SN { get; set; }
[StringLength(256)]
public string givenName { get; set; }
[StringLength(256)]
public string mobile { get; set; }
[StringLength(256)]
public string telephoneNumber { get; set; }
[StringLength(256)]
public string title { get; set; }
[StringLength(256)]
public string department { get; set; }
[StringLength(256)]
public string sectors { get; set; }
[StringLength(256)]
public string region { get; set; }
[StringLength(256)]
public string physicalDeliveryOfficeName { get; set; }
[StringLength(256)]
public string company { get; set; }
public int? userAccountControl { get; set; }
[StringLength(4000)]
public string sAMAccountName { get; set; }
[StringLength(256)]
public string ADsPath { get; set; }
[StringLength(513)]
public string CN { get; set; }
[StringLength(4)]
public string ipPhone { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Location { get; set; }
}
}
(Извините, если мой коднемного не отформатирован, я новичок в программировании и StackFlow)
Этот код, который я думал, будет работать, но не запрашивает базу данных SQL и не возвращает мне информацию, которую я хочу, я просто что-то делаю неправильноне могу понять, что.