我有这个问题:
(from r in gServiceContext.CreateQuery("opportunity")
join c in gServiceContext.CreateQuery("contact") on ((EntityReference)r["new_contact"]).Id equals c["contactid"]
join n in gServiceContext.CreateQuery("annotation") on r["opportunityid"] equals ((EntityReference)n["objectid"]).Id into opp
from o in opp.DefaultIfEmpty().ToList()
where ((EntityReference)r["new_channelpartner"]).Id.Equals(lProfileProperty.PropertyValue) && ((OptionSetValue)r["new_leadstatus"]).Equals("100000002")
使用ToList()
我收到此错误:
方法'GroupJoin'不能遵循'Join'方法或不是 支持的。尝试根据支持的方法或调用编写查询 调用不支持之前的'AsEnumerable'或'ToList'方法 方法
如果我关闭ToList,我会得到同样的错误。有没有解决这个问题,还是我完全错了?
谢谢!
旁注:我正在使用DefaultIfEmpty,因为即使加入的记录为NULL,我仍需要它来记录记录。
答案 0 :(得分:1)
您没有使用分组,因此这应该有效:
(from r in gServiceContext.CreateQuery("opportunity")
join c in gServiceContext.CreateQuery("contact") on ((EntityReference)r["new_contact"]).Id equals c["contactid"]
join n in gServiceContext.CreateQuery("annotation") on r["opportunityid"] equals ((EntityReference)n["objectid"]).Id
where ((EntityReference)r["new_channelpartner"]).Id.Equals(lProfileProperty.PropertyValue) && ((OptionSetValue)r["new_leadstatus"]).Equals("100000002")
更改
join c in gServiceContext.CreateQuery("contact")
到
join c in gServiceContext.CreateQuery("contact").DefaultIfEmpty()