C# C.NET内核中的谓词

C# C.NET内核中的谓词,c#,.net,asp.net-core,predicate,C#,.net,Asp.net Core,Predicate,我还是.NET和.NET核心的初学者。我不确定谓词的语法在.NETCore中是如何工作的 [HttpGet] public async Task<IEnumerable<TodoItem>> GetAllAsync() { var items = await DocumentDBRepository<TodoItem>.GetItemsAsync(t => t.IsComplete); return i

我还是.NET和.NET核心的初学者。我不确定谓词的语法在.NETCore中是如何工作的

  [HttpGet]
    public async Task<IEnumerable<TodoItem>> GetAllAsync()
    {
        var items = await DocumentDBRepository<TodoItem>.GetItemsAsync(t => t.IsComplete);
        return items;
    }
上面代码中的GetItemsAsync在.NET核心框架中有红色下划线,但在.NET框架中没有

GetItemAsync的签名为:

public static async Task<IEnumerable<T>> GetItemsAsync(Expression<Func<T, bool>> predicate)
错误消息是

> "The call is ambiguous between the following methods or properties:
> "DocumentDBRepository<T>.GetItemsAsync(Expression<Func<T, bool>>)" and
> "DocumentDBRepository<T>.GetItemsAsync(Func<TodoItem, body>)"

有人能解释一下原因吗

类中还有另一个GetItemsAssyncFunc。两个函数都有不同的参数。在我注释了这个函数getItemsAssyncFunc之后,它就工作了


谢谢@NetMage

如果你试图构建它,会出现什么错误?@zaitsman刚刚补充说,这里必须定义另一个getItemsAsSyncFunc。@NetMage啊,我的错。谢谢如果你已经知道答案,就发布并接受它。