C# CRM 2016通过RegardingObjectId获取电子邮件。名称不起作用

C# CRM 2016通过RegardingObjectId获取电子邮件。名称不起作用,c#,linq-to-sql,dynamics-crm-2013,C#,Linq To Sql,Dynamics Crm 2013,我创建了一个控制台应用程序来从“Dynamics CRM 2016”中提取信息。我使用XrmServiceContext来获取数据,并且我能够从不同的实体中提取信息,但是在通过特定属性获取EmailSet时遇到问题 我的代码: //This works var test= context.EmailSet.FirstOrDefault(e => e.RegardingObjectId.Id == Guid); //This doesn't work var test= context.Em

我创建了一个控制台应用程序来从“Dynamics CRM 2016”中提取信息。我使用
XrmServiceContext
来获取数据,并且我能够从不同的实体中提取信息,但是在通过特定属性获取
EmailSet
时遇到问题

我的代码:

//This works
var test= context.EmailSet.FirstOrDefault(e => e.RegardingObjectId.Id == Guid);
//This doesn't work
var test= context.EmailSet.FirstOrDefault(e => e.RegardingObjectId.Name == "somename");    
此行正在引发异常:

"Invalid 'where' condition. An entity member is invoking an invalid property or method."  
问题:是否可以通过
查询
电子邮件集
中的objectid.Name


我看不出这个属性有什么特别之处,希望有人能帮助我。

不幸的是,Linq To CRM有一些缺点,但是您可以使用更灵活的fetchxml

var results = service.RetrieveMultiple(
                    new FetchExpression(
                        string.Format("<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
                        "<entity name='email'>" +
                        "<attribute name='subject' />" +
                        "<filter type='and'>" +
                        "<condition attribute='regardingobjectidname' operator='eq' value='{0}' />" +
                        " </filter>" +
                        "</entity>" +
                        "</fetch>", "foobar")));

var emails = results == null
    ? new List<Email>()
    : results.Entities.Cast<Email>();
var results=service.RetrieveMultiple(
新表达式(
字符串格式(“”)+
"" +
"" +
"" +
"" +
" " +
"" +
","foobar",;
var=results==null
? 新名单()
:results.Entities.Cast();

+1为了提供问题的替代解决方案,我更喜欢Linq的简单性,而不是CRM