Share via


Modelo de objetos de administración: procedimientos recomendados y sugerencias

En este tema se enumeran algunos procedimientos recomendados y sugerencias para usar el modelo de objetos de administración.

Trabajar con colecciones en el modelo de objetos de administración

Las colecciones del modelo de objeto de administración implementan la interfaz IEnumerable y proporcionan un método GetEnumerator() que se puede usar para llevar a cabo una iteración simple a través de la colección. La colección devuelta es volátil, lo que significa que el método sólo devuelve una instantánea del objeto de metadatos. Si otro usuario o aplicación cambia la colección en la base de datos, como al agregar, modificar o eliminar elementos, la instantánea estará sincronizada. Por lo tanto, dos enumeradores de los que se ha creado una instancia desde la misma colección en momentos ligeramente diferentes pueden devolver diferentes instantáneas de la colección. Este diseño de "iteración sólo una vez" se recomienda para tomar una instantánea en el momento en que se necesite.

La implementación de la interfaz IEnumerable le permite usar la semántica foreach de Microsoft Visual C#. A continuación se incluyen las dos maneras en que puede trabajar con objetos de la colección.

Ambos métodos funcionan; sin embargo, si desea tener acceso a un elemento específico de la colección, debe usar el método 2 porque la lista está indizada. El método 2 también es más rápido en esos casos ya que no es necesario enumerar a través de la colección un elemento a la vez

Método 1

EntityCollection entityColl = mySysInstance.LobSystem.Entities;
      foreach (Entity entity in entityColl)
      {
            if (entity.Name == "ProductModel")
            {
entity.Identifiers.Create("ProductModelID", true, "System.Int32");
                  break;
            }
      }

Método 2

IList<Entity> entityCollection= new List<Entity>(mySysInstance.LobSystem.Entities);
      entityCollection[3].Name = "XYZ";

.

Identificador y uso de GetById() para obtener un objeto específico

Todos los objetos de metadatos disponen de identificadores únicos. Los identificadores son persistentes a lo largo del período de duración de un paquete de metadatos. Esto significa que si elimina un paquete y vuelve a importarse, los objetos tienen diferentes identificadores. Sin embargo, los identificadores siguen siendo únicos.

Los objetos de metadatos proporcionan un método denominado GetById() que se puede usar para llegar rápidamente a una instancia específica del objeto, si conoce su identificador. Este método normalmente se usa para guardar el identificador de un objeto y usarlo para obtener el objeto rápidamente en un momento posterior. El método GetById() toma el identificador de la instancia. En el ejemplo de código siguiente se muestra cómo se puede obtener el identificador de un objeto.

IList<Entity> entityCollection = new List<Entity>(mySysInstance.LobSystem.Entities);
Int EID = entityCollection[4].Id;

…

…
//and use it later like this:
Entity e = Entity.GetById(EID);

Vea también

Otros recursos

Catálogo de datos profesionales: modelo de metadatos