Извличане на номера на акаунт с помощта на GUID на акаунт в Dynamics CRM

Нов съм в LINQ, така че моля за извинение, ако задам грешен въпрос. Искам да извлека номера на акаунт в Dynamics CRM с помощта на GUID на акаунт и LINQ. Но не може да се намери. Следвам фрагмента, но ми дава изключение, че посоченото предаване не е валидно

 accountID = (Guid)contact["parentcustomerid"];
 var account = from a in context.CreateQuery("account")
 where a.GetAttributeValue<Guid?>("accountid") == accountID
 select new {accountNumber = a["accountnumber"] };

person Mohsin Ali    schedule 30.07.2015    source източник


Отговори (2)


Какво е accountID? Guid или Nullable<Guid>

опитайте долния фрагмент:

accountID = (Guid)contact["parentcustomerid"];
var account = from a in context.CreateQuery("account")
where a.GetAttributeValue<Guid>("accountid") == accountID
select new {accountNumber = a.GetAttributeValue<int>("accountnumber") };

можете да използвате Query Expression. Използва се много лесно:

QueryExpression queryExpression = new QueryExpression("account");
queryExpression.ColumnSet = new ColumnSet("accountnumber");
queryExpression.Criteria.AddCondition("accountid", ConditionOperator.Equal, accountID);

Or

_service.Retrieve("account", accountID, new ColumnSet("accountnumber"));
person Dot_NET Pro    schedule 30.07.2015
comment
service.retrieve връща Microsoft.Xrm.SDK.Entity и когато отстранявам грешки, показва само id в атрибутите. можете ли да помогнете в това - person Mohsin Ali; 30.07.2015
comment
@MohsinAli посочи ли new ColumnSet("accountnumber") - person Dot_NET Pro; 30.07.2015
comment
да, ето го, Entity account = service.Retrieve(account.LogicalName, accountID, new ColumnSet(accountnumber)); - person Mohsin Ali; 30.07.2015
comment
@MohsinAli Ако accountnumber е нула, тогава няма да бъде в атрибути. сигурен съм, че е нула. - person Dot_NET Pro; 30.07.2015
comment
Дори опитвам това: ColumnSet col1 = new ColumnSet(); col1.Columns.Add(номер на сметка); но няма късмет - person Mohsin Ali; 30.07.2015
comment
@MohsinAli Радвам се, че помогна, - person Dot_NET Pro; 30.07.2015

Опитайте нещо като следното:

var accountID = contact.GetAttributeValue<EntityReference>("parentcustomerid").Id;

var accountnumber = (from a in context.CreateQuery("account")
 where a.GetAttributeValue<Guid>("accountid") == accountID
 select a.GetAttributeValue<string>("accountnumber")).FirstOrDefault();
person Andrew Butenko    schedule 30.07.2015