system.linq.IQueryable不包含“To”的定义

时间:2015-07-02 18:56:08

标签: c# entity-framework

我在此代码中收到错误:

这是代码:

  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

2 个答案:

答案 0 :(得分:1)

QueryableExtensions似乎没有包含任何名为To的函数,我也没有听说过这种方法,所以我怀疑你在那里咆哮错误的树方面。

您可能需要以下其中一项:

  1. var response = books.ToList();获取图书清单

  2. var response = books.Cast<BookDto>();books中的每个对象投放到BookDto

  3. 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();