Usar las clases de entidad con enlace en tiempo de compilación para crear, actualizar y eliminar
Publicado: enero de 2017
Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
En Microsoft Dynamics 365 (en línea y local), puede usar el modelo de datos de la entidad y las clases de entidad de enlace de tiempo de compilación, creadas por la herramienta de generación de códigos (CrmSvcUtil), para trabajar con datos profesionales. Puede usar estas clases de enlace de tiempo de compilación con o sin el contexto de servicio de la organización, pero una práctica recomendada es usar la clase de contexto de servicio de la organización generada. El contexto intenta administrar las relaciones de forma eficiente, pero el código manuscrito normalmente puede ser incluso más eficaz.
Nota
Las actualizaciones de los registros se realizan en un orden específico. Primero se procesan las entidades principales y luego se procesan las entidades relacionadas. Si la entidad principal para una búsqueda o un atributo de entidad relacionada realiza un cambio, y luego una entidad relacionada actualiza el mismo atributo, se mantiene el valor de la entidad relacionada. Normalmente un valor de atributo de búsqueda y su equivalente en las RelatedEntities (o propiedades de navegación) para la misma relación no se deben usar al mismo tiempo.
En este tema
Uso de la clase OrganizationServiceContext
Creación de un nuevo registro de entidad usando las clases de entidad de enlace de tiempo de compilación y la clase OrganizationServiceContext
Actualización de un nuevo registro de entidad usando las clases de entidad de enlace de tiempo de compilación y la clase OrganizationServiceContext
Eliminación de un nuevo registro de entidad usando las clases de entidad de enlace de tiempo de compilación y la clase OrganizationServiceContext
Uso de clases de entidad de enlace de tiempo de compilación sin un objeto de contexto
Uso de la clase OrganizationServiceContext
Para el seguimiento de los cambios en los datos se utiliza la clase de contexto de servicio de la organización creada por la herramienta de generación de código y que se hereda de OrganizationServiceContext. El contexto hace un seguimiento de los objetos que son instancias de tipos de entidad que representan datos en Microsoft Dynamics 365. Puede modificar, crear y eliminar objetos del contexto de servicio de la organización, y Microsoft Dynamics 365 hace un seguimiento de los cambios realizados en estos objetos. Cuando se llama al método OrganizationServiceContext.SaveChanges, Microsoft Dynamics 365 genera y ejecuta comandos que realizan las instrucciones de inserción, actualización o eliminación equivalentes en los datos de Microsoft Dynamics 365.
Al trabajar con clases de entidad de enlace de tiempo de compilación, se utiliza el nombre de entidad y el nombre de esquema del atributo para especificar una entidad o un atributo con el que trabajar. Los nombres de esquema del atributo se definen en EntityMetadata.SchemaName y AttributeMetadata.SchemaName, o puede usar los nombres de clase y de propiedad mostrados en el archivo generado por el código. El siguiente ejemplo muestra cómo asignar un valor al atributo de correo electrónico de una nueva instancia de contacto.
Contact contact = new Contact();contact.EMailAddress1 = “sonny@contoso.com”;
Para obtener un ejemplo completo de código que muestra cómo usar las clases de entidad de enlace de tiempo de compilación para realizar acciones básicas de base de datos, consulte Ejemplo: crear, recuperar, actualizar y eliminar registros (enlace en tiempo de compilación).
Creación de un nuevo registro de entidad usando las clases de entidad de enlace de tiempo de compilación y la clase OrganizationServiceContext
Si desea insertar datos en Microsoft Dynamics 365 mediante el modelo de datos de la entidad, debe crear una instancia de un tipo de entidad y agregar el objeto a un contexto de servicio de la organización. El contexto de servicio de la organización debe realizar un seguimiento del objeto para poder guardarlo en Microsoft Dynamics 365.
Cuando se crea un nuevo registro de entidad, se agrega el objeto al contexto de servicio de la organización mediante el método OrganizationServiceContext.AddObject.
El siguiente ejemplo muestra la creación y el guardado de un nuevo registro de contacto usando el modelo de datos de la entidad. También demuestra cómo acceder a un 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();
Después de agregar un objeto al contexto y antes de llamar al método OrganizationServiceContext.SaveChanges, el contexto genera un identificador para el nuevo objeto. Una excepción que contiene el valor SaveChangesResults se genera desde el método SaveChanges si falla alguna actualización en los datos de Microsoft Dynamics 365.
Actualización de un nuevo registro de entidad usando las clases de entidad de enlace de tiempo de compilación y la clase OrganizationServiceContext
Microsoft Dynamics 365 hace un seguimiento de los cambios en los objetos asociados al contexto de servicio de la organización. Para modificar un registro de entidad existente, primero debe agregar el objeto al contexto. Para agregar un objeto al contexto, primero debe recuperar el registro de entidad de Microsoft Dynamics 365 y después agregar el objeto al contexto mediante el método OrganizationServiceContext.Attach. Una vez el contexto esté realizando el seguimiento del objeto, puede actualizar el registro estableciendo los atributos de la entidad.
El siguiente ejemplo muestra cómo actualizar un atributo de cuenta con clases de enlaces en tiempo de compilación.
Account.EMailAddress1 = “Contoso-WebMaster@contoso.com”;
El siguiente ejemplo muestra cómo eliminar un valor de atributo.
Account.EMailAddress1 = null;
Existen dos métodos parciales denominados OnPropertyChanging y OnPropertyChanged para cada entidad. A estos métodos se les llama en el establecedor de propiedad. Puede ampliar estos métodos mediante clases parciales para insertar lógica de negocios personalizada.
Eliminación de un nuevo registro de entidad usando las clases de entidad de enlace de tiempo de compilación y la clase OrganizationServiceContext
Para eliminar un registro de entidad, el contexto de servicio de la organización debe realizar un seguimiento del objeto. Una vez el objeto esté en el contexto, puede usar el método OrganizationServiceContext.DeleteObject para marcar el objeto en el contexto para su eliminación. Tenga en cuenta que el registro de entidad de Microsoft Dynamics 365 no se eliminará hasta que se llame al método OrganizationServiceContext.SaveChanges.
Uso de clases de entidad de enlace de tiempo de compilación sin un objeto de contexto
Puede usar las clases de entidad de enlace de tiempo de compilación sin crear un objeto de contexto de servicio de la organización si no desea crear el objeto de contexto. La clase de OrganizationServiceProxy incluye un método OrganizationServiceProxy. el métodoCreate que se puede usar para guardar los cambios del registro de entidad a Microsoft Dynamics 365.
El siguiente ejemplo muestra cómo usar una clase de entidad de enlace de tiempo de compilación sin crear un objeto de contexto de servicio de la organización. El método OrganizationServiceProxy.Create devuelve el identificador del GUID asignado al registro de entidad recién creado.
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 actualizar un registro de entidad en Microsoft Dynamics 365, recupere los datos que dese actualizar, realice los cambios necesarios y luego use el método OrganizationServiceProxy. métodoUpdate para confirmar esos cambios en Microsoft Dynamics 365. Para recuperar registros de entidad, use el método OrganizationServiceProxy.Retrieve para recuperación de un solo objeto o el método OrganizationServiceProxy.RetrieveMultiple para recuperar varios objetos. Para eliminar un registro de entidad, utilice el método OrganizationServiceProxy.Delete.
Ver también
Usar las clases de entidad con enlace en tiempo de compilación en código
Usar las clases de entidad de enlace en tiempo de compilación para agregar o actualizar asociaciones entre registros relacionados
Crear las clases de entidad con enlace en tiempo de compilación con la herramienta de generación de código (CrmSvcUtil.exe)
Ejemplo: crear, recuperar, actualizar y eliminar registros (enlace en tiempo de compilación)
Microsoft Dynamics 365
© 2017 Microsoft. Todos los derechos reservados. Copyright