Solo qualche giorno fa dicevo che a fatica riesco a concentrarmi a lungo sul solito argomento.
Così dopo una breve chiacchierata con Script#. Mi sono trovato a giocare con DLINQ.
DLING è una costola del più ampio progetto LINQ, che promette di renderci più facile la convivenza tra il mondo relazionare e OO
Volevo partire da un progetto esistente, e "tradurlo" in DLINGHIANO (brevetterò questo nome).
Quindi ho preso un programma terminato di recente che necessita solo di alcuni aggiustamenti richiesti dal cliente.
Il programma è un gestionale per gli stabilimenti balneari partiamo dalla ormai inflazionatissima classe Customer l'originale:
private int id; public int ID { get { return id; } set { id = value; } } private string name; public string Name { get { return name; } set { name = value; } }
e quella modificata:
[Table(Name="Customer")] public class Customer { private int _ID; [Column(Name="ID",Id=true,AutoGen=true,Storage="_ID")] public int ID { get { return _ID; } set { _ID = value; } } private string _Name; [Column(Name="Name",Storage="_Name")] public string Name { get { return _Name; } set { _Name = value; } }
Senza dilungarmi troppo la decorazione tramite gli attributi mappa la tabella Customers del DB alla classe Customer.
Il passo successivo è crearsi un DataContex tipizzato.
namespace LINQBeach
{
public class TheSimpleBeach : DataContext
{
public TheSimpleBeach(string connectionString):base(connectionString){ }
public Table
}
}
Il DataContext rappresenta, il "mediatore" tra il db e le nostre classi.
Per finire in una pagina aspx:
protected void Page_Load(object sender, EventArgs e)
{
TheSimpleBeach db = new TheSimpleBeach(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TheSimpleBeach.mdf;Integrated Security=True; User Instance=True");
var q =
from c in db.Customers
where c.Name.Contains("m")
select c;
foreach (var cust in q)
Response.Write(string.Format("
Nome = {2} Cognome = {0} Citta = {1}
",cust.Surname, cust.City, cust.Name));}
Tutto fila liscio, fin qua non è stato difficile, perche l?esempio è molto semplice, nei prossimi giorni converitò altre due classi BeachUmbrella e Rent sicuramenti più interessanti, entreranno in gioco le relazione tra tabelle e classi e altro ancora
Se state giocando con la Ctp spero che siate stati più fortunati di me, infatti dopo l?istallazione l?intellisense mi ha abbandonato.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Un altro piccolo passo, il 13 giugno 2006 alle 14:06
- Extension Method, il 25 maggio 2006 alle 13:59
- inauguriamo la sezione, il 23 maggio 2006 alle 14:33