Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CRM 2011 linq和保存的查询_C#_Linq_Dynamics Crm 2011 - Fatal编程技术网

C# CRM 2011 linq和保存的查询

C# CRM 2011 linq和保存的查询,c#,linq,dynamics-crm-2011,C#,Linq,Dynamics Crm 2011,是否可以将CRM 2011视图(savedquery)与linq一起使用?我的意思是我能做这样的事情吗: IEnumerable<Opportunity> GetOpportunites(CrmOrganizationServiceContext context, string viewName, Guid customerId) { var view = context.CreateQuery<SavedQuery>().FirstOrDefault(q =&g

是否可以将CRM 2011视图(savedquery)与linq一起使用?我的意思是我能做这样的事情吗:

IEnumerable<Opportunity> GetOpportunites(CrmOrganizationServiceContext context, string viewName, Guid customerId)
{
    var view = context.CreateQuery<SavedQuery>().FirstOrDefault(q => q.Name == viewName);
    if(view!=null)
       return from Opportunity op in view
           where op.CustomerId.Id == customerId
           select op;
           return new List<Opportunity>();
}
IEnumerable GetOpportunities(CrmOrganizationServiceContext上下文、字符串viewName、Guid customerId)
{
var view=context.CreateQuery().FirstOrDefault(q=>q.Name==viewName);
如果(视图!=null)
从视图中的Opportunity op返回
其中op.CustomerId.Id==CustomerId
选择op;
返回新列表();
}

当然不会。正如Servy建议的那样,尝试一下,你就会明白为什么

SavedQuery
有两个属性定义视图-
FetchXml
(基础查询)和
LayoutXml
(在UI中返回的列)。换句话说,它不返回视图在UI中返回的数据,而是定义如何在UI中返回数据

枚举您希望从视图返回的记录的最简单的方法是直接使用
FetchRequest
。您必须在
FetchXml
中以XML节点的形式动态插入条件

您还可以解析XML过滤器集,然后将其适当地转换为Linq,但这显然更具挑战性,可能是不必要的


第三种方法是在系统中创建一个静态视图,作为一个条件,您将客户设置为某个任意客户,然后在XML字符串中动态更改客户id。

尝试时会发生什么?它会产生错误吗?它会工作吗?它会做一些你不想做的事情吗?上面的代码不会工作。我写它只是为了解释我的目标。