Un altro piccolo passo

di Marco Leoncini, in Linq,

finita la partita Italia vs Ghana, volevo riprendere il discorso del piccolo gestionale per spiagge tradotto in DLINGHIANO.
Abbiamo visto come mappare la classe Customer alla rispettiva tabella del db, molto simpatico ma in realtà poco interessante (quello che in genere pensano le donne di me :D).
possiamo trovare maggior soddisfazione in Rent e BeachUmbrella, rispettivamente l'affitto e il suo soggetto.

classe rent.

namespace LINQBeach
{
[Table(Name="Rent")]
public class Rent 
{
public Rent() { }

private int _ID;
[Column(Name="ID",Id=true,AutoGen=true,Storage="_ID")]
public int ID
{
get
{
return _ID;
}
set 
{
_ID = value;
}
}

[Column(Name="UmbrellaID")]
private int _BeachUmbrellaID;

private EntityRef<BeachUmbrella> _BeachUmbrella;
[Association(Storage = "_BeachUmbrella", ThisKey = "_BeachUmbrellaID")]
public virtual BeachUmbrella BeachUmbrella
{
get
{
return _BeachUmbrella.Entity;
}
set
{

this._BeachUmbrella.Entity = value;
}
}

[Column(Name="CustomerID")]
private int _CustomerID;

private EntityRef<Customer> _Customer;
[Association(Storage = "_Customer", ThisKey = "_CustomerID")]
public virtual Customer Customer
{
get 
{ 
return _Customer.Entity; 
}
set
{
this._Customer.Entity = value;
}
}

private DateTime _From;
[Column(Name="StartDate",Storage="_From")]
public DateTime From
{
get
{
return _From; 
}
set
{
_From = value;
}
}

private DateTime _To;
[Column(Name="EndDate",Storage="_To")]
public DateTime To
{
get
{
return _To;
}
set
{
_To = value;
}
}

private string _Note;
[Column(Name="Note",Storage="_Note")]
public string Note
{
get 
{
return _Note; 
}
set 
{
_Note = value;
}
}

private decimal _Deposit;
[Column(Name="Deposit",Storage="_Deposit")]
public decimal Deposit
{
get 
{
return _Deposit; 
}
set 
{
_Deposit = value; 
}
}
}
} 

Possiamo notare come Rent mantenga un riferimento alla rispettiva istanza di BeachUmbrella e Customer in un campo di tipo EntityRef<T> , questo tipo consente il Deferred Loading dell'oggetto istanziandolo solo se necesarrio.
Utilizzando l'attributo Association possiamo creare quello che i un db è la classica relazione tra PK e FK, nel mio caso la "relazione" è mantenuta nella classe stessa memorizzando CustomeID e BeachUmbrellaID in due campi privati di tipo int.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese