我想将两个表的结果返回到列表中。
public List<dynamic> GetStatistics(DateTime startDate , DateTime endDate)
{
try
{
List<dynamic> result = new List<dynamic>();
using (XactETLEntities xactCtxt = new XactETLEntities())
{
var query = (from a in xactCtxt.XactETL_Activity_Log
join b in xactCtxt.XactETL_Shred_Mode on a.ShredModeID
equals b.ShredModeID
where a.CreatedDate >= startDate && a.CreatedDate <= endDate
select new { a, b });
result = query.ToList();
}
}
我无法将结果分配给query.ToList()
答案 0 :(得分:0)
问题是查询不是IEnumerable,因此ToList()函数没有返回正确的列表类型。此外,匿名类型不能转换为除对象之外的任何内容,而且是内部的。您最好的选择是尝试使您的选择更明确。
而不是:
select new { a, b });
你可以使用:
select (dynamic)new Tuple<DateTime, DateTime>(a, b)
这将导致您的查询返回动态的IEnumerable,其中每个项目实际上都是下面的元组。
修改强> 解决方案是在转换为列表之前让查询将所有项目转换为对象。
query.Select(o => (object)o).ToList();