【发布时间】:2015-09-10 03:20:39
【问题描述】:
以下方法返回长数组。但是当我运行它时,得到错误:
指定的演员表无效。
public long[] GetLastMonthConsume(long metid)
{
var lastconsume = (from itm in db.tblMonthConsumes
where itm.MetID_FK == metid && itm.MonthConsumeDate ==
(from itm2 in db.tblMonthConsumes
where itm2.MeterID_FK == metid
select itm2.MonthConsumeDate).Max()
select new
{
itm.MonthConsumeTotal,
itm.MonthConsumeTotalFuncHour
}).ToList();
return lastconsume.Cast<long>().ToArray();
}
此错误发生在:
return lastconsume.Cast<long>().ToArray();
(MonthConsumeTotalFuncHour,MonthConsumeTotal) 的数据类型很长。
这个演员表错了吗?如何获取查询的输出并转换为长数组???
【问题讨论】:
-
您的查询选择了一个匿名类型,其中包含两个属性
MonthConsumeTotal和MonthConsumeTotalFuncHour。您希望如何将其转换为long的数组? - 您只需要选择一个属性,并且该属性必须是 typeoflong -
@Stephen Muecke 我想在一个查询中选择两个属性。怎么样?
-
您选择了 2 个属性,但不能将其返回为
long[]。不清楚具体如何使用数据,但您可以创建一个包含 2 个属性long MonthConsumeTotal和long MonthConsumeTotalFuncHour的模型,并使用select new yourModel { ..}和return IEnumerable<yourModel>
标签: c# sql-server asp.net-mvc linq-to-sql