Business objekty, někdy též entity nebo datové třídy, jsou třídy, kterými reprezentujeme reálný svět, modelujeme tu část reality, která je potřeba ke zdárnému a smysluplnému běhu vyvíjené aplikace.
Pokud vyvíjíme např. nějaký informační systém, který bude pro svou vnitřní agendu používat škola, řekněme pro známkování, rozvrhy hodin, třídní knihu (obdoba aplikace Bakaláři), tak business objektem bude nejspíš třída Teacher (modelující učitele), Student (modelující žáka), Classroom (modelující třídu, v níž probíhá výuka apod.).
Aplikace pro správu zakázek v autoservisu bude mít zase jako své business objekty např. Car (auto, které se má opravit), Customer (zákazník), Mechanic (servisní technik, který provádí opravy), Invoice (faktura za provedené služby) apod.
Použijeme-li příklad z úvodního článku o databázích, můžeme definovat např. business objekty Invoice a InvoiceItem pro fakturu a její položku takto:
public class Invoice { public string InvoiceNo { get; set; } public string CustomerName { get; set; } public DateTime IssueDate { get; set; } public DateTime DueDate { get; set; } public DateTime TaxableEventDate { get; set; } public decimal TotalPrice { get; set; } }
public class InvoiceItem { public int ItemOrdinal { get; set; } public string Description { get; set; } public decimal Amount { get; set; } public decimal UnitPrice { get; set; } public string Unit { get; set; } public decimal ItemPrice { get; set; } }
Relaci many-to-one mezi položkou faktury (strana many) a fakturou, ke které položka patří, (tj. strana one) vyjádříme tím, že do definice business objektu InvoiceItem přidáme referenci na příslušný objekt Invoice takto:
public class InvoiceItem { public int ItemOrdinal { get; set; } public string Description { get; set; } public decimal Amount { get; set; } public decimal UnitPrice { get; set; } public string Unit { get; set; } public decimal ItemPrice { get; set; } public Invoice Invoice { get; set; } }