Business Object it

From CaisisWiki

Jump to: navigation, search

Traduzione a cura di Andrea Fraietta


I Business objects in Caisis rappresentano le tabelle del database, consentendo ai client (ovvero alla Caisis.UI) di leggere e scrivere i dati in modo trasparente i dati, ed accedere ai metadata della tabella.

Creare un nuovo Business Object

Prima di creare un nuovo Business Object, dovresti cercare nei sorgenti un Business Object esistente (preferibilmente uno molto simile a quello che stai creando) e confrontarlo con la struttura della tabella del database che esso rappresenta.

Per inizializzare un Business Object i metodi di inizializzazione della classe astratta BizObject (che tutti i Business Object dovrebbero estendere) tratteranno tutti i membri public static String del Business Object come nomi di colonna della tabella che il Business Object rappresenta. Inoltre, gli attributi associati con il Business Object ed i suoi membri corrispondono rispettivamente alla tabelle e campi metadata.

Consideriamo il seguente estratto del file Caisis.BusinessObject.Encounter.cs:

   [Tablename("Encounters")]
   [ParentTablename("Patients")]
   [Disease("All")]
   [Exportable]
   [HasSiblings]
   public class Encounter : BizObject
   {
       [NotNull]
       [ParentKey]
       [DataType(typeof(System.Int32))]
       [Deidentify(DeidentifyOptions.Randomize)]
       [LimitIdentification(LimitIdentificationOptions.Randomize)]
       public static readonly String PatientId = "PatientId";
       
       [PrimaryKey]
       [DataType(typeof(System.Int32))]
       public static readonly String EncounterId = "EncounterId";
       
       [DataType(typeof(System.Byte))]
       public static readonly String EncPending = "EncPending";
       
       [DataType(typeof(System.String))]
       [Deidentify(DeidentifyOptions.Omit)]
       public static readonly String EncDateText = "EncDateText";
       
       [DataType(typeof(System.DateTime))]
       [Deidentify(DeidentifyOptions.MaskDate)]
       public static readonly String EncDate = "EncDate";
       
       [DataType(typeof(System.String))]
       public static readonly String EncType = "EncType";
       
       ...
   }

Ad esempio, la tabella Encounters ha una chiave primaria EncounterId, una tabella padre e la chiave Patients e PatientId, rispettivamente, ed una relazione molti-a-uno con la tabella Patients (cioè un certo paziente può avere diversi encounters, ma non viceversa). EncounterId e PatientId sono datatype Int32, e il campo EncType e` di tipo String. Le DataColumns della DataTable del Business Object Encouter avra` i datatype correspondenti a questi attributi di DataType.

Personal tools