Я запрашиваю linqQuery из linqQuery2, потому что LINQ to CRM не поддерживает GroupBy. Приведенный ниже код работает, но он проверяет только первую найденную запись. Есть ли что-то вроде First (), но проверяет все записи, а не только First?
var linqQuery = (from r in orgServiceContext.CreateQuery("opportunity")
select new
{
OpportunityId = !r.Contains("opportunityid") ? string.Empty : r["opportunityid"],
CustomerId = !r.Contains("customerid") ? string.Empty : ((EntityReference)r["customerid"]).Name,
OwnerId = !r.Contains("ownerid") ? string.Empty : ((EntityReference)r["ownerid"]).Id.ToString(),
OwnerName = !r.Contains("ownerid") ? string.Empty : ((EntityReference)r["ownerid"]).Name.ToString(),
EmailedToRSM = !r.Contains("new_emailedtorsm") ? false : ((Boolean)r["new_emailedtorsm"]),
LeadStatus = !r.Contains("new_leadstatus") ? "100000000" : ((OptionSetValue)r["new_leadstatus"]).Value.ToString(),
});
var linqQuery2 = (from f in linqQuery.ToList()
group f by f.OwnerId into myGroup
select new
{
OwnerName = myGroup.First().OwnerName,
OwnerId = myGroup.First().OwnerId,
LeadStatus = myGroup.First().LeadStatus.ToString(),
EmailedToRSM = myGroup.First().EmailedToRSM,
OrderCount = myGroup.Count()
});
foreach (var c in linqQuery2)
{
if (c.LeadStatus.ToString() == "100000000")
{
//Count records that have a Lead Status of 100000000
}
}
Спасибо! * * 1004