У меня есть ASP .Net Core 2.2 Web API. В нем я использую SignalR. В моем хабе мне нужно сохранить сообщения в базе данных, поэтому я получаю экземпляр DbContext, и, поскольку я вызываю метод SaveChangesAsync () DbContext, мне нужно сделать метод асинхронным. Итак, с
public Task SendMessageToAll(string message)
{
return Clients.All.SendAsync("ReceiveMessage", message);
}
У меня сейчас есть
public async Task SendMessageToAll(string message)
{
using (var scope = _serviceProvider.CreateScope())
{
var dbContext = scope.ServiceProvider.GetRequiredService<DbContext>();
Message newMessage = new Message()
{
Body = message,
Timestamp = DateTime.Now
};
dbContext.Messages.Add(newMessage);
await dbContext.SaveChangesAsync();
}
return Clients.All.SendAsync("ReceiveMessage", message);
}
Однако теперь я получаю эту ошибку:
Поскольку ChatHub.SendMessageToAll (string) 'является асинхронным методом, который возвращает «Task», за ключевым словом return не должно следовать выражение объекта. Вы намеревались вернуть «Задачу»?
Это имеет смысл, но я не уверен, как это исправить. Есть идеи?