Rya*_*yan 8 linq crm dynamics-crm dynamics-crm-2011
我正在尝试执行此查询以检索特定实体类型的审核项目
public List<Audit> GetAuditChangesSince(DateTime since, string entityType)
{
return (from a in OrgContext.CreateQuery<Audit>()
where
a.ObjectId != null && a.ObjectId.LogicalName == entityType &&
a.CreatedOn > since
select a).ToList();
}
Run Code Online (Sandbox Code Playgroud)
该a.ObjectId!= NULL && a.ObjectId.LogicalName ==的EntityType &&条款导致的问题.我知道.Equals()可能会导致问题(因此==)并且LINQ提供程序存在以下限制:
子句的左侧必须是属性名称,子句的右侧必须是值
左侧是属性,右侧是常量.是.ObjectId.LogicalName导致问题吗?
由于审计实体不为特定记录所涉及的实体的逻辑名称/类型代码提供地面属性,因此您在此处可以做的最好的事情是链接到您希望定位的实体(或实体)审计记录 - 即没有检索所有记录.
这种情况的一般技术是,您可以链接到具有半无意义条件的相关实体,例如检查主键是否为空.对于您的情况,只需链接即可.
拉动与联系人关联的审计记录的示例:
from a in OrgContext.CreateQuery<Audit>()
join c in ContactSet on a.ObjectId.Id equals c.ContactId
where a.ObjectId != null && a.CreatedOn > since
select a
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9915 次 |
| 最近记录: |