L'EF ou tout autre ORM (c'est-à-dire NHibernate) ne remplace pas votre couche d'accès aux données. Plutôt, l'ORM est une couche d'abstraction de la couche d'accès au contenu vers la source de données.
Ne vous laissez pas berner pour croire que l'EF élimine le DAL. L'EF est juste un autre cadre de source de données. Cependant, dans la meilleure pratique, vous voulez toujours abstraire et centraliser tous les accès (lecture/écriture) dans une couche d'accès numérique commune.
Voici un exemple parfait de ce dont je parle. Supposons que vous devez supprimer un utilisateur donné dans l'un de vos cas d'utilisation. Toutefois, lors de la suppression de l'utilisateur, vous pouvez supprimer d'autres enregistrements associés à l'utilisateur supprimé pour éviter les enregistrements orphelins (Pour être honnête avec vous, j'utiliserai un proc stocké pour cela). Maintenant, ce cas d'utilisation est bloqué dans certains BO qui sont très spécifiques à ce cas d'utilisation et la suppression en tant qu'utilisateur n'est qu'une partie du cas d'utilisation total.
À un moment donné, vous avez demandé à un développeur d'incorporer un cas d'utilisation différent qui impliquait la suppression d'un utilisateur! Le développeur peut faire quelques choses. 1) Il pourrait créer un nouveau cas d'utilisation qui implique maintenant la suppression d'un utilisateur mais a oublié de supprimer tous les enregistrements associés à cet utilisateur. 2) Il a peut-être remarqué le précédent cas d'utilisation mais ne pouvait pas l'utiliser directement sans trop généraliser pour son cas d'utilisation, il a donc décidé de copier une partie de ce cas d'utilisation qui supprime correctement un utilisateur et ses enregistrements associés dans son cas d'utilisation . Maintenant, nous avons des pièces qui dupliquent le code qui fait pratiquement la même chose - supprimer un utilisateur. Yuk! Maintenant, après avoir mis cette «suppression d'utilisateur», disons un DAL.Utilisateurs assistant classe, vous évitez cette mauvaise pratique de conception. Quoi qu'il en soit, ce qui est bien avec l'EF, cela réduit le nombre d'Entités Métiers que j'ai créé manuellement et fournit une vue différente des données d'un niveau d'application que ce que l'on voit au niveau du magasin de données.
DAL de Stackoverflow: http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/ –