Belius' Blog

Il blog di Simone Belia
posts - 16, comments - 335, trackbacks - 31

lunedì 15 ottobre 2007

[UPDATE] NHibernate complex queries

Pochi giorni fa avevo scritto un post  su come creare degli oggetti che incapsulassero le informazioni per filtrare dei dati in NH (e non solo).

Questo post non è altro che una piccolissima aggiunta con l'implementazione di una classe che rappresenta l'ordine dei risultati della query.

Il concetto è quello di avere una classe che contenga il campo da ordinare e la direzione di ordinamento (espressa tramite un enum).

public class OrderField
{
     
private string _field = string.Empty;
     private 
OrderDirection _direction OrderDirection.Asc;

     public string 
Field
     {
         
get return _field}
         
set { _field = value; }
     }

     
public OrderDirection Direction
     {
         
get return _direction}
         
set { _direction = value; }
     }

     
public OrderField(string field, OrderDirection direction)
     {
         _field 
field;
         
_direction direction;
     
}
}

 

public enum OrderDirection
{
      Asc,
      Desc
}
 
Visto che potrebbero verificarsi numerosi casi in cui un solo campo non basta ai fini dell'ordinamento, ho pensato fosse utile implementare una collezione che dasse la possibilità di recuperare in un colpo tutta la stringa di ordinamento.

 

public class OrderFieldList: List<OrderField>
{
      
public override string ToString()
      {
          StringBuilder sb 
= new StringBuilder("");
          if 
(this.Count >0)
          {
              sb.Append(
"ORDER BY ");
              foreach 
(OrderField of in this)
              {
                  sb.AppendFormat(
"{0} {1},", of.Field, of.Direction.ToString());
              
}

              sb.Remove(sb.Length-
11);
          
}

          
return sb.ToString();
     
}
}
 
 
 ...e per finire la sua implementazione ai fini pratici è:
 
string hql "select c from Customer c where c.Country = :country"

                
OrderFieldList ofl = new OrderFieldList();
ofl.Add(new OrderField("BirthDate", OrderDirection.Desc));
ofl.Add(new OrderField("LastName", OrderDirection.Asc));

hql +ofl.ToString();

//..........
//..........
//..........
....a presto!!!

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (53) | Filed Under [ ASP.NET Tips ]

Dynamic Data Controls for ASP.NET

Microsoft ha messo a disposizione da poco tempo un'estensione di ASP.NET chiamata Dynamic Data Controls.
Questa estensione non è altro che una libreria di controlli che collegandosi ad un DB ne recupera lo schema e genera a runtime tutte le pagine che sono necessarie al dataentry e la visualizzazione delle tabelle.

L'estensione potete trovarla a questo indirizzo:  http://www.asp.net/downloads/futures/

Ancora una volta le scelte che fa Microsoft mi fatto restare a bocca aperta. Stanno lavorando moltissimo su LINQ e l'EF eppure tirano fuori un set di controlli che vanno completamente contro al DDD.

[Pensiero] :-)
...valà, non dirmi che anche i dipendenti Ms hanno il vicino rompi che gli dice...."dai fammi un programmino per la gestione dei miei dvd...tanto per te che ci capisci è un attimo".
Se questo fosse, allora mi scuso e ringrazio!!

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (60) | Filed Under [ ASP.NET ]

Powered by:
Powered By Subtext Powered By ASP.NET