2009-11-11 3 views
1

Je crée mon premier projet basé sur linq. Le DAL est constitué de classes LinqToSQL. Et la couche logique est juste une autre DLL pour le garder simple.Comment transférer des données lors de l'utilisation de LINQ en tant que DAL?

Je voulais savoir comment passer l'objet var (résultat d'une requête de sélection) du calque de connexion au calque de présentation? Dois-je écrire ma propre couche DTO entre la couche de connexion et la couche de présentation pour transférer la couche de BLL à la couche de présentation ou dois-je sérialiser les données au format XML?

Merci, Vikas

Répondre

0

Je voudrais éviter sérialisation chaque fois que vous avez la possibilité de passer uniquement les données en tant que classe fortement typé. Et c'est ce que vous allez devoir faire. Je crois que quand .Net 4.0 sortira, vous serez en mesure de passer des vars, mais jusque-là, essayez de retourner votre requête en tant que IEnumerable au lieu d'un var quand vous avez besoin de passer à une autre fonction.

IE:

public class myClass 
{ 
    public int RecordID { get; set; } 
    public string Field1 { get; set; } 
} 

public void GetDataAndSendToOtherLayer() 
{ 
    using (DBDataContext db = new DBDataContext) 
    { 
     IEnumerable<myClass> Recs = 
      from tab in db.table 
      select new myClass 
      { 
       RecordID = tab.RecordID, 
       Field1 = tab.Field1 
      }; 

     OtherLayer.DoSomething(Recs); 
    } 
} 
+0

merci pour un exemple rapide :) – Vikas

0

charge chaque ligne résultat dans un objet, placez le chaque objet dans une collection, puis passer la collection de la DAL à votre BOL où il peut alors être manipulé par vos règles métier avant la collection est transmise à votre présentation.

Questions connexes