C# .ToList()在MVC api Core 2中
也许这个问题以前问过,但没有得到一个好的答案。 我在mvc Core 2中创建了一个mvc API,然后在Get all方法中实现了我的接口,当我想要获取所有客户的列表时,我得到了这个错误,在下面的show my code中: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
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后,得到这个错误:,再次删除它