2015-06-03 72 views
0

我在本地使用MS crm 2013。我正在一個控制檯應用程序,我需要做一個retrievemultiple。ms crm queryexpression with linkentiites

QueryExpression queexp = new QueryExpression(); 

ConditionExpression conexp1; 
conexp1 = new ConditionExpression(); 
conexp1.AttributeName = "new_memberid";   
conexp1.Operator = ConditionOperator.Equal; 
conexp1.Values.Add(id); 

查詢linkentities:

queexp.LinkEntities.Add(linkEntityAccount); 
queexp.LinkEntities.Add(linkEntityArbet); 

如果我刪除有關linkentities上述兩行,查詢的工作fine.Otherwise,則返回0結果。 我該如何解決這個問題?

回答

0

您需要明確指定要添加的LinkEntities。例如:

//Create a query expression specifying the link entity alias and the columns of the link entity that you want to return 

QueryExpression qe = new QueryExpression(); 
qe.EntityName = "account"; 
qe.ColumnSet = new ColumnSet(); 
qe.ColumnSet.Columns.Add("name"); 

qe.LinkEntities.Add(new LinkEntity("account", "contact", "primarycontactid", "contactid", JoinOperator.Inner)); 
qe.LinkEntities[0].Columns.AddColumns("firstname", "lastname"); 
qe.LinkEntities[0].EntityAlias = "primarycontact"; 

EntityCollection ec = _orgService.RetrieveMultiple(qe); 

第二個方法是使用LINQ:

OrganizationServiceContext orgSvcContext = new OrganizationServiceContext(xProxy); 
var result = from c in orgSvcContext.CreateQuery("entityname") 
    //where.... 
    select c; 
EntityCollaction xEntityCol = result; 
+0

Ofcourse,我有我沒有的問題在這裏添加它。我認爲這是一些微軟錯誤, –

+0

比現在的工作? – Unlockedluca

+0

你提到的是我的代碼已經。但是,總是記錄0個記錄。當我刪除linkentities我得到一個記錄按預期 –