У меня есть функция, которая была объявлена так:C# Задача функция переписана с пользовательской задачей
public Task<PossibleUser> FindByNameAsync(string userName)
{
Task<PossibleUser> task = context.TabelaStudenti.Where(
apu => apu.NrMatricol == userName)
.FirstOrDefaultAsync();
return task;
}
Проблема заключается в том, что я хочу, чтобы вернуть что-то еще из этой функции в настоящее время, к примеру, я попробовал:
public Task<PossibleUser> FindByNameAsync(string userName)
{
Student studentUser = context.TabelaStudenti.Where(st => st.NrMatricol == userName).FirstOrDefault();
Task<PossibleUser> someTask= new Task<PossibleUser>(() =>
{
if (studentUser == null)
{
return new PossibleUser()
{
Password = studentUser.Parola,
UserName = studentUser.UserName
};
}
else
{
//just return something else
return new PossibleUser();
}
});
return someTask;
}
Но это не работает, я не получаю ответа от этой функции. Как я могу изменить первую функцию, чтобы вернуть свою собственную задачу?
Я должен указать, что эта функция уже называется так:
PossibleUser user = await userManager.FindAsync(context.UserName, context.Password);
и является частью ASP.NET Web API Owin аутентификацией, где UserManager является
UserManagerFactory =() => new UserManager<PossibleUser>(new StudentStore()) { PasswordHasher = new MyPasswordHasher() };