C# 无法隐式转换类型';系统Linq.IQueryable<&燃气轮机;到存在显式转换(是否缺少强制转换?)
我有以下代码:C# 无法隐式转换类型';系统Linq.IQueryable<&燃气轮机;到存在显式转换(是否缺少强制转换?),c#,.net,asp.net-mvc-3,linq,C#,.net,Asp.net Mvc 3,Linq,我有以下代码: private GolfManagementEntities db = new GolfManagementEntities(); public class ThanhToan { public ThanhToan() { } public Double Total { get; set; } public DateTime date { get; set; } } public
private GolfManagementEntities db = new GolfManagementEntities();
public class ThanhToan
{
public ThanhToan()
{ }
public Double Total { get; set; }
public DateTime date { get; set; }
}
public List<ThanhToan> listInvoice(DateTime tuNgay, DateTime denNgay)
{
List<ThanhToan> invoice= from i in db.Invoices
where i.Date >= tuNgay && i.Date <= denNgay
group i by i.Date into In
select new ThanhToan {
date= Convert.ToDateTime(In.Key) ,
Total = Convert.ToDouble(In.Sum(s => s.ExtendedCost))
};
return invoice;
}
private GolfManagementEntities db=new GolfManagementEntities();
公共级ThanhToan
{
公共Thanthan()
{ }
公共双总计{get;set;}
公共日期时间日期{get;set;}
}
公共列表发票(DateTime tuNgay、DateTime Dengay)
{
列出发票=来自数据库中的发票
其中i.日期>=tuNgay和i.日期s.延期成本)
};
退货发票;
}
我得到了这个错误:
无法将类型“System.Linq.IQueryableto”隐式转换为。存在显式转换(是否缺少转换?
请帮助我您的查询返回的是
IQueryable
,但您试图返回的是列表
。没有可用的隐式转换(根据错误消息),但您可以使用extension方法创建列表:
public List<ThanhToan> ListInvoices(DateTime tuNgay, DateTime denNgay)
{
var query = from i in db.Invoices
where i.Date >= tuNgay && i.Date <= denNgay
group i by i.Date into g
select new ThanhToan {
date = Convert.ToDateTime(g.Key),
Total = Convert.ToDouble(g.Sum(s => s.ExtendedCost))
};
return query.ToList();
}
公共列表发票(DateTime tuNgay、DateTime Denggay)
{
var query=来自数据库中的i发票
其中i.日期>=tuNgay和i.日期s.延期成本)
};
返回query.ToList();
}
(我已将您的方法名称更改为遵循.NET命名约定,并且在返回多张发票(而不仅仅是一张发票)方面更有意义。还请注意,将查询分散到多行可以使阅读更容易。)您的查询返回
IQueryable
,但您正在尝试返回列表。没有可用的隐式转换(根据错误消息),但您可以使用extension方法创建列表:
public List<ThanhToan> ListInvoices(DateTime tuNgay, DateTime denNgay)
{
var query = from i in db.Invoices
where i.Date >= tuNgay && i.Date <= denNgay
group i by i.Date into g
select new ThanhToan {
date = Convert.ToDateTime(g.Key),
Total = Convert.ToDouble(g.Sum(s => s.ExtendedCost))
};
return query.ToList();
}
公共列表发票(DateTime tuNgay、DateTime Denggay)
{
var query=来自数据库中的i发票
其中i.日期>=tuNgay和i.日期s.延期成本)
};
返回query.ToList();
}
(我已将您的方法名称更改为遵循.NET命名约定,并且在返回多张发票(而不仅仅是一张发票)方面更有意义。还请注意,将查询分散到多行可以使阅读更容易。)