我在此代码中收到错误:
这是代码:
public IHttpActionResult Get()
{
var books = unit.Books.All;
var response = books.To<BookDto>();
return Ok(response);
}
并且正确在books.To()我收到此错误:
system.linq.IQueryable不包含“To”和
的定义 扩展方法'to'接受类型的第一个参数 'system.linq.IQueryable'可以找到。你错过了一个使用 指令或汇编参考?
我看了这个,但没有帮助。
IQueryable<T> does not contain a definition for 'Include' and no extension method 'Include'
我使用的是System.Data.Entity;我也从NuGet安装了EF,但作为链接中的解决方案,我无法在
中获得“QueryableExtensions” using System.Data.Entity.QueryableExtensions
答案 0 :(得分:1)
QueryableExtensions似乎没有包含任何名为To
的函数,我也没有听说过这种方法,所以我怀疑你在那里咆哮错误的树方面。
您可能需要以下其中一项:
var response = books.ToList();
获取图书清单
var response = books.Cast<BookDto>();
将books
中的每个对象投放到BookDto
var response = books.Select(book => new BookDto(book));
从BookDto
构建books
个对象序列,假设有合适的构造函数。
答案 1 :(得分:0)
IQueryable.To<T>
不是一件事。如果您尝试转换为其他类型,则可能需要使用Select
,例如。
var response = books.Select(book => new BookDto()); //Insert transformation logic into the new object initialization.
如果你想制作一个清单,那么就这样做:
var response = books.ToList();