Linq错误无法对匿名类型的变量进行操作



显然我星期三早上很傻。我有一个错误,我应该知道答案。抱歉问了这个愚蠢的问题。

var results1 = (from p in db1.a_PCRs
join je in db1.a_Job_Extensions on p.PCR equals je.PCR
join j in db1.Jobs on je.Job equals j.Job1
join d in db1.Deliveries on j.Job1 equals d.Job
where j.Status == "Active"
where j.Job1.StartsWith("A")
where p.PCR == "2552"
where d.Shipped_Quantity > 0
orderby d.Shipped_Date descending
select new
{
p.PCR,
d.Shipped_Date
}).FirstOrDefault();
if (results1 != null)
{
foreach (var result1 in results1)
{
lastDeliveryDate = result1.Shipped_Date;
}
}else
{
lastDeliveryDate = Convert.ToDateTime("1/1/1980");
}

错误出现在"上的foreach循环上;结果1";项目

Error   CS1579  foreach statement cannot operate on variables of type '<anonymous type: string PCR, DateTime? Shipped_Date>' because '<anonymous type: string PCR, DateTime? Shipped_Date>' does not contain a public instance or extension definition for 'GetEnumerator'

有人能把我推向正确的方向吗?

当您调用.FirstOrDefault((时,您正在获取查询中的第一个项。您不能用foreach迭代它,它是单个项。

根据您的逻辑,您的查询已经获取了按"Shipped_Date"订购的正确商品。我想你只想放下前臂-

if (results1 != null)
{
lastDeliveryDate = results1.Shipped_Date;
}
else
{
lastDeliveryDate = Convert.ToDateTime("1/1/1980");
}

最新更新