C# 返回一个列表<&燃气轮机;从方法
我想从ASP.NET API调用返回一个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(
列表
。我得到下面的编译错误-但我不确定如何解决它
无法将类型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()
吗?哈-这么简单快捷的解决方案,但我没有看到!多谢各位