BBaseLibraryModel - esempi
Estendere una classe generata
File generato da BStudio, da non modificare:
BClasses/BCliente.cs
File dello sviluppatore:
BClassesPartial/BCliente.cs
using System.Data;
namespace MiaBaseLibrary;
public partial class BCliente
{
public string DescrizioneCompleta
{
get
{
return Codice + " - " + RagioneSociale;
}
}
public override bool PartialMappingData(DataRow dr)
{
// Eventuale logica aggiuntiva dopo il mapping generato.
return base.PartialMappingData(dr);
}
}
Non ridichiarare proprietà come Codice o RagioneSociale se esistono già nella parte generata.
Creare e salvare un oggetto
BCliente cliente = new BCliente(connection);
cliente.Codice = "CLI001";
cliente.RagioneSociale = "Cliente dimostrativo";
cliente.Attivo = true;
bool salvato = cliente.Update();
Update() decide normalmente fra inserimento e aggiornamento usando lo stato ereditato da BBaseObject.
Caricare mediante chiave primaria
BCliente cliente = new BCliente(125, connection);
if (!cliente.IsNothing)
{
string descrizione = cliente.RagioneSociale;
}
Il tipo e il numero dei parametri del costruttore dipendono dalla chiave primaria della tabella.
Salvare dentro una transazione esterna
connection.ApriDatabase();
connection.BeginTrans();
try
{
bool salvato = cliente.Update(WithnewTransaction: false);
if (!salvato)
{
connection.RollBackTrans();
return;
}
connection.CommitTrans();
}
catch
{
connection.RollBackTrans();
throw;
}
finally
{
connection.EndTrans();
connection.ChiudiDatabase();
}
Usare una relazione oggetto
if (cliente.Provincia != null && !cliente.Provincia.IsNothing)
{
string provincia = cliente.Provincia.Descrizione;
}
La relazione può essere caricata al primo accesso e richiede una connessione valida.
Modificare una collezione figlia
if (cliente.Recapiti != null)
{
BClienteRecapito recapito = new BClienteRecapito(connection);
recapito.Tipo = "EMAIL";
recapito.Valore = "cliente@example.test";
cliente.Recapiti.Add(recapito);
}
bool salvato = cliente.Update(SaveCollections: true);
Nomi e proprietà sono illustrativi; usare sempre quelli generati dal database reale.
