我们正在使用CRM 2011.我们与产品实体参考合同,每个产品都有一个实体参考主题。鉴于合同指导,我需要检索主题指南。
我是LINQ的初学者,但我编码:
var subject = from s in context.SubjectSet
join product in context.ProductSet
on s.Id equals product.SubjectId.Id
join contract in context.ContractSet
on product.Id equals contract.ce_ProductId.Id
where contract.Id == gContractId
select s;
foreach (var s in subject)
{
newReportableAction.ce_SupergroupRegarding =
new EntityReference(Xrm.Subject.EntityLogicalName, new Guid(s.Id.ToString()));
}
这会引发错误:
AttributeFrom和AttributeTo必须同时指定或两者都是ommited。你不能只通过其中一个。 AttributeFrom:,AttributeTo:ce_ProductId
这个错误是什么意思?
我如何获得Guid?
更新:
我尝试将查询分成几部分,以查看错误的生成位置,所以我有:
var query = from product in context.ProductSet
join contract in context.ContractSet
on product.Id equals contract.ce_ProductId.Id
这给出了:
“join子句中某个表达式的类型不正确。在”加入“调用中类型推断失败”
感谢所有帮助过的人......
答案 0 :(得分:5)
我认为您不能在Linq语句中使用.Id属性。试试这个:
var query = from product in context.ProductSet
join contract in context.ContractSet
on product.ProductId equals contract.ce_ProductId.Id
请注意product.ProductId
而不是product.Id
。