2010-02-01 7 views
1

J'ai une classe de base qui gère les données de retour de la classe/table pertinente.Subsonic - Retourne seulement certaines colonnes/propriétés pour l'affichage

Je veux avoir un moyen de spécifier les colonnes à afficher. Peut-être avoir une liste de colonnes publiques qui est assignée avec toutes les colonnes que nous voulons afficher?

C'est ce que j'ai mais ce n'est pas correct.

public void SetupGrid<T>() where T : class, new() 
     { 
      var db = new MyApp.MyDB(); 
      IRepository<T> repo = new SubSonicRepository<T>(db); 
      var s = repo.GetAll(); 


      var x = from c in s select new { c.Columns //that match columns I specify }; 

     } 

Répondre

0

Cela semble le faire, mais pas certain que ses meilleures pratiques:

public virtual void SetupGrid<T>() where T : class, new() 
     { 
      MyApp.MyDBdb = new MyApp.MyDB(); 
      IRepository<T> repo = new SubSonicRepository<T>(db); 
      ITable table = repo.GetTable(); 


      List<string> list = new List<string>(); 
      list.Add("CreatedOn"); 
      list.Add("PageID"); 
      list.Add("CreatedBy"); 

      var s = db.SelectColumns(list.ToArray()). 
        From(table.Name). 
        OrderAsc(table.Descriptor.Name).ExecuteReader(); 



      bindingSource1.DataSource = s; 



     } 
Questions connexes