Usar as classes de entidade associadas precocemente para criar, atualizar e excluir

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

No Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015, é possível usar o modelo de dados da entidade e as classes de entidade associadas precocemente, criadas pela ferramenta de geração de código (CrmSvcUtil), para trabalhar com dados corporativos. Você pode usar essas classes associadas precocemente com ou sem o contexto de serviço da organização, mas é recomendável usar a classe de contexto do serviço da organização gerada. O contexto tenta gerenciar relacionamentos com eficiência, mas o código criado manualmente em geral pode ser ainda mais eficiente.

Observação

As atualizações em registros são feitas em uma ordem específica. Primeiro, as entidades principais são processadas e, em seguida, são processadas as entidades relacionadas. Se uma alteração for feita pela entidade principal para uma consulta ou um atributo da entidade relacionada e, em seguida, uma entidade relacionada atualizar o mesmo atributo, o valor da entidade relacionada será mantido. Em geral, um valor de atributo de pesquisa e seu equivalente no RelatedEntities (ou nas propriedades de navegação) do mesmo relacionamento não devem ser usados ao mesmo tempo.

Neste tópico

Usar a classe OrganizationServiceContext

Crie um novo registro da entidade usando as classes de entidade associadas precocemente e a classe OrganizationServiceContext

Atualize um registro da entidade usando as classes de entidade associadas precocemente e a classe OrganizationServiceContext

Exclua um registro da entidade usando as classes de entidade associadas precocemente e a classe OrganizationServiceContext

Use classes de entidade associadas precocemente sem um objeto de contexto

Usar a classe OrganizationServiceContext

A classe de contexto do serviço da organização que a ferramenta de geração de código cria e que herda do OrganizationServiceContext é usada para acompanhar as alterações de dados. O contexto acompanha os objetos que são instâncias de tipos de entidade que representam dados no Microsoft Dynamics 365. Você pode modificar, criar e excluir objetos no contexto de serviço da organização, e o Microsoft Dynamics 365 acompanha as alterações feitas nesses objetos. Quando o método OrganizationServiceContext.SaveChanges é chamado, o Microsoft Dynamics 365 gera e executa comandos que realizam as declarações de inserção, atualização ou exclusão equivalentes nos dados do Microsoft Dynamics 365.

Ao trabalhar com classes de entidade associadas precocemente, use o nome da esquema e o nome do esquema do atributo para especificar uma entidade ou um atributo com o qual trabalhar. Os nomes de esquemas de atributos são definidos no EntityMetadata.SchemaName e AttributeMetadata.SchemaName, ou você pode usar os nomes de classe e de propriedade mostrados no arquivo de gerado por código. O exemplo a seguir mostra como atribuir um valor ao atributo de email de uma nova instância de contato.

Contact contact = new Contact();contact.EMailAddress1 = “sonny@contoso.com”;

Para um exemplo de código completo que mostra como usar classes de entidade associadas precocemente para executar ações básicas do banco de dados, consulte Exemplo: Criar, recuperar, atualizar e excluir registros (limite antecipado).

Crie um novo registro da entidade usando as classes de entidade associadas precocemente e a classe OrganizationServiceContext

Quando quiser inserir dados no Microsoft Dynamics 365 usando o modelo de dados da entidade, você deve criar uma instância de um tipo de entidade e adicionar o objeto a um contexto de serviço da organização. O contexto de serviço da organização deve estar acompanhando o objeto para que seja possível salvar o objeto no Microsoft Dynamics 365.

Ao criar um novo registro da entidade, adicione o objeto ao contexto de serviço da organização usando o método OrganizationServiceContext.AddObject.

O exemplo a seguir mostra como instanciar e salvar um novo registro de contato, usando o modelo de dados da entidade. Também demonstra como acessar um atributo personalizado.

OrganizationServiceContext orgContext =new OrganizationServiceContext(_serviceProxy);
Contact contact = new Contact()   
 {
   FirstName = "Charles",
   LastName = "Brown",
   Address1_Line1 = "123 Main St.",
   Address1_City = "Des Moines",
   Address1_StateOrProvince = "IA",
   Address1_PostalCode = "21254",
   new_twittername = "Chuck",
   Telephone1 = "123-234-5678"
 }; 
orgContext.AddObject(contact);orgContext.SaveChanges();

Após a adição de um objeto ao contexto e antes que o método OrganizationServiceContext.SaveChanges seja chamado, o contexto gera uma ID para o novo objeto. Uma exceção que contém o SaveChangesResults é emitida a partir do método SaveChanges se alguma atualização nos dados do Microsoft Dynamics 365 falhar.

Atualize um registro da entidade usando as classes de entidade associadas precocemente e a classe OrganizationServiceContext

O Microsoft Dynamics 365 acompanha as alterações nos objetos anexados ao contexto de serviço da organização. Para modificar um registro da entidade existente, primeiro é necessário adicionar o objeto ao contexto. Para adicionar um objeto ao contexto, primeiro você deve recuperar o registro da entidade de Microsoft Dynamics 365 e depois adicionar o objeto ao contexto usando o método OrganizationServiceContext.Attach. Quando o objeto estiver sendo acompanhado pelo contexto, você pode atualizar o registro com a configuração dos atributos da entidade.

O exemplo a seguir mostra como atualizar um atributo de conta usando as classes associadas precocemente.

Account.EMailAddress1 = “Contoso-WebMaster@contoso.com”;

O exemplo a seguir mostra como excluir um valor de atributo.

Account.EMailAddress1 = null;

Há dois métodos nomeados OnPropertyChanging e OnPropertyChanged para cada entidade. Esses métodos são chamados no definidor de propriedade. Você pode estender esses métodos usando classes parciais para inserir lógica de negócios personalizada.

Exclua um registro da entidade usando as classes de entidade associadas precocemente e a classe OrganizationServiceContext

Para excluir um registro da entidade, o contexto de serviço da organização deve estar acompanhando o objeto. Quando o objeto está no contexto, você pode usar o método OrganizationServiceContext.DeleteObject para marcar o objeto no contexto para exclusão. Observe que o registro da entidade no Microsoft Dynamics 365 não é excluído até que o método OrganizationServiceContext.SaveChanges seja chamado.

Use classes de entidade associadas precocemente sem um objeto de contexto

Você pode usar as classes de entidade associadas precocemente sem criar um objeto de contexto de serviço da organização se não quiser criar o objeto de contexto. A classe de OrganizationServiceProxy inclui OrganizationServiceProxy. Método Create que pode ser usado para salvar as alterações do registro da entidade no Microsoft Dynamics 365.

O exemplo a seguir mostra como usar uma classe de entidade associada precocemente sem criar um objeto de contexto de serviço da organização. O OrganizationServiceProxy. O método Create retorna o ID do GUID atribuído ao registro de entidade criado recentemente.

Contact contact = new Contact()
 {
   FirstName = "Charles",
   LastName = "Brown",
   Address1_Line1 = "123 Main St.",
   Address1_City = "Des Moines",
   Address1_StateOrProvince = "IA",
   Address1_PostalCode = "21254",
   Telephone1 = "123-234-5678" 
  };
 _contactId = _serviceProxy.Create(contact); 

Para atualizar um registro de entidade no Microsoft Dynamics 365, recupere os dados a serem atualizados, faça as alterações necessárias e depois use o OrganizationServiceProxy. método Update para confirmar essas alterações no Microsoft Dynamics 365. Para recuperar os registros da entidade, use o OrganizationServiceProxy. método Retrieve para a recuperação de objeto único ou OrganizationServiceProxy método RetrieveMultiple para recuperar vários objetos. Para excluir um registro de entidade, use o OrganizationServiceProxy. método Delete.

Confira Também

Use classes de entidade de limite antecipado no código
Use as classes de entidade associada para adicionar ou atualizar associações entre os registros relacionados
Criar classes de entidade associadas precocemente com a ferramenta de geração de código (CrmSvcUtil.exe)
Exemplo: Criar, recuperar, atualizar e excluir registros (limite antecipado)

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais