Business Object it
From CaisisWiki
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.