C# .ToList()在MVC api Core 2中

C# .ToList()在MVC api Core 2中,c#,asp.net-mvc,api,interface-implementation,C#,Asp.net Mvc,Api,Interface Implementation,也许这个问题以前问过,但没有得到一个好的答案。 我在mvc Core 2中创建了一个mvc API,然后在Get all方法中实现了我的接口,当我想要获取所有客户的列表时,我得到了这个错误,在下面的show my code中: using System; using System.Collections.Generic; using Dates.Api.Contacts; using Dates.Model; using System.Linq; using Microsoft.EntityFr

也许这个问题以前问过,但没有得到一个好的答案。 我在mvc Core 2中创建了一个mvc API,然后在Get all方法中实现了我的接口,当我想要获取所有客户的列表时,我得到了这个错误,在下面的show my code中:

using System;
using System.Collections.Generic;
using Dates.Api.Contacts;
using Dates.Model;
using System.Linq;
using Microsoft.EntityFrameworkCore.Design;

public IEnumerable<Customer> GetAll()
    {
      return  _db.Customer.ToList();
    }
使用系统;
使用System.Collections.Generic;
使用Dates.Api.Contacts;
使用日期模型;
使用System.Linq;
使用Microsoft.EntityFrameworkCore.Design;
公共IEnumerable GetAll()
{
return _db.Customer.ToList();
}
“Customer”不包含“ToList”的定义,并且找不到接受类型为“Customer”的第一个参数的扩展方法“ToList”(是否缺少using指令或程序集引用?)

评论后更新:客户在同一解决方案的另一个项目中作为代码优先的类

更新2:第一个想法是我错误地使用了没有DbSet:)的客户,但当使用它时,会出现以下错误:

类型“IQueryable”是在未引用的程序集中定义的。您必须添加对程序集“System.Core,Version=0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”的引用。
我打开myproject.API.csproj,这些是我的依赖项



如果您的
客户
DBSet
的子类,那么我相信
EF6
只有一种异步列表方法,请参阅

通常,在对IO的同步调用中阻塞线程不是一种好的做法,因此最好使用
async/await

所以你可以

public Task<IEnumerable<Customer>> GetAll()
{
    return await _db.Customer.ToListAsync();
}
public任务GetAll()
{
return wait_db.Customer.ToListAsync();
}

但是,这当然会改变您的方法签名

如果您的
客户
DBSet
的子类,那么我相信
EF6
中只有一个异步列表方法,请参阅

通常,在对IO的同步调用中阻塞线程不是一种好的做法,因此最好使用
async/await

所以你可以

public Task<IEnumerable<Customer>> GetAll()
{
    return await _db.Customer.ToListAsync();
}
public任务GetAll()
{
return wait_db.Customer.ToListAsync();
}

但是,这当然会改变您的方法签名

如何在数据库上下文中定义
Customer
?您能否在
DbContext
中显示包含
Customer
属性的行?我仍然希望先看到您的代码。如果
\u db.Customer
确实是
DbSet
它应该可以工作。在第二次更新之前,我添加了system.core版本3。。。。在使用DbSet后出现此错误:,再次删除它。如何在数据库上下文中定义
Customer
?能否在
DbContext
中显示包含
Customer
属性的行?我仍然希望先查看代码。如果
\u db.Customer
确实是
DbSet
它应该可以工作。在第二次更新之前,我添加了system.core版本3。。。。在使用DbSet后,得到这个错误:,再次删除它