2010-11-05 16 views
0

Scénario: J'ai un scénario avec une couche de présentation (ASP.NET), une couche logique métier (dll) et une couche de données (dll) dans cette dernière, il y a un LinqTOSQL DataContext fichier (dbml) qui contient des tables et proc stocké pour une base de données particulière. La liaison entre les projets sont les suivants:3 meilleures pratiques - Accès LinqTOSQL dans la couche de présentation

Dépendances: couche logique métier est une référence pour la couche de données couche de présentation est une référence pour la couche logique métier

Mon problème: Le problème est que j'ai des cas quand j'ai besoin renvoyer un objet d'un type de table correspondant au datacontext, mais puisque le calque de présentation n'a pas de référence à la couche de données je ne peux pas utiliser l'objet table ... Est-ce une bonne pratique de référencer la couche de données directement dans le Couche de présentation? Ou quelqu'un pourrait me guider vers la meilleure façon que je pourrais réaliser les tableaux de la couche de présentation

Répondre

0

Au lieu d'avoir la couche logique métier renvoie une System.Data.Linq.Table<TEntity> à la couche de présentation, faites revenir un System.Collections.Generic.IEnumerable<TEntity> par diffusion implicite ou System.Collections.Generic.IList<TEntity> en appelant ToList() sur la table.

Il semble que les objets définis dans votre fichier dbml se trouvent déjà dans votre espace de noms de domaine, vous n'avez donc pas besoin de référencer System.Data.Linq dans votre couche de présentation.