0 votes

Linq2SQL, Entités : Couche intermédiaire ou couche d'accès aux données

Les gens,

Dans une architecture standard à trois niveaux, où placer le fichier dbml de Linq2SQL ?

Votre réponse est-elle la même pour un modèle de données d'entité ado.net ?

Si le fichier dbml se trouve dans le niveau intermédiaire, avez-vous une couche de données ?

Voir aussi,

Brett

0voto

Steven Points 56939

Le DBML se situerait en effet dans la moyenne. LINQ to SQL interroge le niveau de données (votre base de données SQL Server). LINQ to SQL se trouverait normalement dans la couche inférieure du niveau intermédiaire et vous n'enverriez pas d'entités LINQ to SQL par câble (elles ne se sérialisent pas bien).

Avec Entity Framework, l'architecture est très similaire, sauf qu'EF permet d'envoyer des objets de domaine par câble. Surtout avec les nouvelles technologies (comme OData) qui sortent et qui s'intègrent bien avec EF.

0voto

Ameer Hamza Points 313

Le DBML devrait faire partie de la couche de données et ne pas être directement exposé à la couche métier. Il est préférable d'exposer des méthodes pour obtenir et enregistrer des entités, et de garder l'interaction avec les spécificités de la persistance sous les couvertures (dans ce cas, il s'agit de Linq2Sql, mais en l'abstrayant, vous pouvez plus tard passer à Linq2Entities, ou à n'importe quoi d'autre sans briser votre application).

Il s'agit également d'un bon modèle s'il est nécessaire d'effectuer plusieurs requêtes et de manipuler quelque peu les données pour créer vos entités, ou d'effectuer un travail supplémentaire lors de l'enregistrement (gestion des clés étrangères pour les tables enfants, etc.), car ces détails restent cachés aux autres niveaux.

en ce qui concerne les commentaires de Steven sur le fait que L2Sql ne sérialise pas bien, c'est malheureusement vrai si vous utilisez ce que le constructeur de Linq2Sql vous donne dans la boîte. quelques solutions de contournement dans les classes partielles nettoient cela assez facilement, cependant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X