C# 返回一个列表<&燃气轮机;从方法

C# 返回一个列表<&燃气轮机;从方法,c#,.net,linq,C#,.net,Linq,我想从ASP.NET API调用返回一个列表。我得到下面的编译错误-但我不确定如何解决它 无法将类型System.Linq.IQueryable隐式转换为System.Collections.Generic.List。存在显式转换(是否缺少强制转换?) 这是我的语法: public IEnumerable<ITD> Get() { List<ITD> result = new List<ITD>(); XE entities = new XE(

我想从ASP.NET API调用返回一个
列表
。我得到下面的编译错误-但我不确定如何解决它

无法将类型
System.Linq.IQueryable
隐式转换为
System.Collections.Generic.List
。存在显式转换(是否缺少强制转换?)

这是我的语法:

public IEnumerable<ITD> Get()
{
    List<ITD> result = new List<ITD>();
    XE entities = new XE();
    result = (from a in entities.Companies
              join b in entities.Invoices
              on a.compNumber equals b.compNumber
              select new
              {
                  compname = a.Company1,
                  invoicenum = b.InvoiceNum,
                  invoiceamt = b.InvoiceAmt,
                  invoicedate = b.InvoiceDueDate,
                  invoicepaddate = b.InvoicePaidDate
              });
    return result;
}
public IEnumerable Get()
{
列表结果=新列表();
XE实体=新的XE();
结果=(来自实体公司中的a)
加入b实体。发票
在a.compNumber上等于b.compNumber
选择新的
{
compname=a.Company1,
invoicenum=b.invoicenum,
发票金额=b.发票金额,
invoicedate=b.InvoiceDueDate,
invoicepaidate=b.invoicepaidate
});
返回结果;
}

您返回的是
IQueryable
,而不是
IEnumerable
。将代码更改为:

select new ITD
如果仍然出现错误,可能是因为无法投影到映射实体上,那么需要从
ITD
实体创建一个具有所需属性的DTO类,如下所示:

public class ITDDTO
{
    public string Company { get; set; }
    //And other properties
}

另外,不要忘记在查询结束时添加
.ToList()

LINQ查询返回接口IQueryable的实例,但变量
结果
是一个
列表,请尝试执行以下操作:

List<ITD> result = new List<ITD>(/*Insert LINQ here*/)
List result=新列表(/*在此处插入LINQ*/)

您的LINQ查询需要
ToList()
吗?哈-这么简单快捷的解决方案,但我没有看到!多谢各位