我正在编写一种删除员工贷款计划的方法。这意味着我必须删除结果列表。我了解到 List.Clear()可以删除列表。我有一个来自接口的自定义方法存储库,该方法是异步的,并返回 IEnumerable 。我的问题是删除列表后异步方法的返回类型。错误是
无法从用法中推断出方法'Task.FromResult(TResult)'的类型参数。尝试显式指定类型参数。
public Task<bool> DeleteEmployeeSchedule(string employeeId, string loantypecode)
{
var scheduleList = _repository.FindBy(e => e.EmployeeId == employeeId && e.LoanTypeCode == loantypecode).Result.ToList();
scheduleList.Clear()
return Task.FromResult();
}
大家好,我再次更改了代码。这次没有删除列表中的项目。这是否意味着RemoveAll()不会从数据库中删除记录。下面的代码不会删除记录。
public async Task<bool> DeleteEmployeeSchedule(string employeeId, string loantypecode)
{
var scheduleList = _repository.FindBy(e => e.EmployeeId == employeeId && e.LoanTypeCode == loantypecode).Result.ToList();
scheduleList.RemoveAll(employee => employee.EmployeeId == employeeId);
await _repository.DbContext.SaveChangesAsync();
return true;
}
答案 0 :(得分:-2)
您有一些语法错误,您缺少传递布尔值的Task.FromResult();
的参数会回答您的问题。
将行更改为:return Task.FromResult(true);
将解决您的错误消息。
此外,您可以将呼叫重构为使用`await:
public async Task<bool> DeleteEmployeeSchedule(string employeeId, string loantypecode)
{
var scheduleList = (await _repository.FindBy(e => e.EmployeeId == employeeId && e.LoanTypeCode == loantypecode).ToList();
scheduleList.Clear()
//NOTE: however your error occurred on the line below due to wrong syntax, you have to pass in a boolean value eg. true/false
return Task.FromResult(true);
}
编辑:
在没有看到更多代码的情况下,例如_repository
是什么数据类型以及如何实现它,我们不得不承担太多的事情...
正如其中一项评论所述,这将不会保留在数据库中。
EDIT2: @lutakyn发布了以下代码更改作为注释 (请使用更新的代码更新您的初始帖子)
public async Task<bool> DeleteEmployeeSchedule(string employeeId, string loantypecode)
{
var scheduleList = (await _repository.FindBy(e => e.EmployeeId == employeeId && e.LoanTypeCode == loantypecode)).ToList();
scheduleList.RemoveAll(employee => employee.EmployeeId == employeeId);
await _repository.DbContext.SaveChangesAsync();
return true;
}
scheduleList
包含符合您条件的实体,将它们从列表中删除或调用.Clear()
不会影响您的DbContext中的实体。您必须在您的DbContext上调用删除,例如:
_repository.DbContext.Schedule.RemoveRange(scheduleList);
但是.Schedule
是一个假设,因为我们不知道您的_repository是什么样子,.DbContext
的确切数据类型以及DbSet<>
的实现中的DbContext
是什么