2008-10-30 8 views
1

creuser autour subsonique, je suis tombé sur cettede données - subsonique, C# 2.0

link text

bon article, mais ont une certaine 's

maintenant je veux la possibilité de revenir soit un IList? ou Dataset, est-ce que je créerais une usine d'abstarct pour ceci, si je peux avoir une méthode générique qui prendrait dans IList ou Dataset comme paramètre ref et remplirait l'objet passé dedans?

est-il une bonne pratique de déclarer des classes statiques dans la couche d'affaires qui parle à ma couche de données de telle sorte que dans mon interface utilisateur où j'ai un gridviewcontrol je peux faire

mybusinesslayer.getdata (ref MyDataSet) // comme mybusinesslayer est statique

mygridviewcontrol.datasource = MyDataSet ....

Répondre

3

Qu'est-ce que vous envisagez de faire avec les jeux de données que vous ne pouvez pas faire avec les ILists? À mon humble avis, vous aurez envie d'être fortement typé autant que possible.

Sur mon équipe, nous nous connectons à notre niveau intermédiaire à ObjectDataSources puis tous nos GridViews, listviews, etc ... les utiliser pour récupérer des données:

Couche d'affaires/Middle Tier

namespace Project 
{ 
    public class BusinessLayer 
    { 
     public IList<Product> GetProducts() 
     { 
      return new Select().From(Products.Schema).Where(Products.Columns.Status).IsEqualTo(true).ExecuteTypedList<Product>(); 
     } 
    } 
} 

Sur la page

<asp:ObjectDataSource id="odsProducts" runat="server" TypeName="Project.BusinessLayer" SelectMethod="GetProducts()"></asp:ObjectDataSource> 

Ensuite, à partir de là, vous pouvez connecter un de vos contrôles de vue de données (Gridview, Listview, etc ...) à la source de données. C'est très propre et ne nécessite aucun code dans le code-behind.

Je suis également tombé sur cet article de Rob que vous avez posté et que vous avez trouvé utile de comprendre comment écrire des applications découplées avec SubSonic.

+0

+1 pour le code propre! – karlgrz

+0

Le code que vous avez utilisé dans votre classe BusinessLayer est SubSonic? –