Получить номер учетной записи с помощью 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, и при отладке в атрибутах отображается только идентификатор. можешь помочь в этом - 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