Что следует использовать вместо устаревшего EntityName.account.ToString()?

При разработке QueryExpression я всегда использовал следующий жестко закодированный синтаксис.

QueryExpression expression = new QueryExpression
{
  EntityName = "account";
  ...
}

В этом блоге размещено следующее используется синтаксис, основанный на этом перечислении.

QueryExpression expression = new QueryExpression
{
  EntityName = EntityName.account.ToString();
  ...
}

Мне это понравилось намного больше, но я не смог найти его с помощью intellisense. Затем я нашел это обсуждение, где объясняется, что синтаксис устарел.

Итак, что следует использовать вместо EntityName? Я немного погуглил, но не нашел ничего полезного. Мне кажется, что какое-то перечисление должно быть предпочтительнее, чем жестко закодированное выражение. Это правильно? И если да, то как это сделать в CRM 2011?


person Community    schedule 14.01.2013    source источник


Ответы (3)


И если вы используете сущности с поздней привязкой, вы можете использовать Объект.ЛогическоеИмя.

person James Wood    schedule 14.01.2013
comment
Это действительно, когда у меня есть экземпляр сущности. Что можно использовать, если я хочу получить логическое имя объекта и не хочу его вводить? Предположим, я забыл, что имя схемы маркетинговых списков просто список (или, может быть, я не уверен, пишется оно с заглавной буквы или нет). Я могу просто посмотреть или попробовать исправить ошибку, но я хотел бы изучить более профессиональный метод для достижения этой цели. Не следует ли мне думать об этом так (тем более, что я использую позднюю привязку)? - person ; 14.01.2013
comment
Ну, вы можете запросить службы метаданных CRM, чтобы получить имя, однако это добавляет вызов веб-службы. Также, учитывая ваш пример, вам нужно запомнить marketing list, чтобы получить list, что в основном является той же проблемой. В какой-то момент вам придется запомнить ссылку на объект в CRM, поскольку имя схемы — это то, что вам нужно, оно может быть и таким. Обычно я просто жестко кодирую все имена своих сущностей либо в виде литеральных строк, либо в переменной только для чтения. - person James Wood; 14.01.2013
comment
Хорошая точка зрения. Я больше всего думал, что было бы удобно получить для этого intellisense. Ленивый, хе-хе... - person ; 14.01.2013
comment
Хорошо, если вы сохраните все имена в статических переменных, тогда вы можете использовать intellisense. - person James Wood; 14.01.2013

Если вы используете классы с ранней привязкой, вы также можете использовать следующий синтаксис для своего пользовательские сущности. Если нет, это будет работать для всех стандартных сущностей.

Account.EntityLogicalName
person ccellar    schedule 14.01.2013

вы можете написать, например, Contact.EntityLogicalName.ToString(), но в этом случае вы должны

использовать ранние связанные классы

person Michael Philip    schedule 30.01.2013