Dans la plupart des cas, la couche de bonté sucrée entre les objets d'entité et l'écriture SQL est votre DAL. Le but entier de LINQ est de permettre des constructions beaucoup plus expressives avec votre DAL que ce qui était possible dans le passé.
Sans LINQ, dans votre BL, vous pourriez être limité à des appels de méthode tels que GetCustomersByLastName(string)
contre votre DAL. La seule raison pour laquelle vous écrivez cette méthode est parce que quelque part dans votre BL, vous devez obtenir des clients par nom de famille. Cela signifie que vos contrats DAL sont explicitement motivés par les besoins du BL. Alors qu'avec LINQ, vous êtes libéré de la dépendance concrète entre les besoins du BL et les contrats du DAL. Le DAL peut être complètement agnostique quant à l'utilisation spécifique; il expose simplement les contrats des entités et leurs relations, et le BL les utilise à volonté sans se préoccuper de la mise en œuvre de leurs données. C'est vrai séparation des préoccupations.
Si vous cachez la puissance de LINQ derrière une couche DAL traditionnelle, à quoi bon utiliser LINQ?
Vous n'avez pas répondu à votre question? Vous n'avez pas conçu votre base de données pour être un modèle de domaine (j'espère), et ces "entités" correspondent directement à vos tables de base de données, ce qui signifie qu'elles correspondent directement à votre "modèle non domaine". Je considère que c'est une raison pour répondre "non". –
John Saunders, les modèles Entity Framework, contrairement à LINQ to SQL, n'ont pas besoin de (et, en fait, ne devraient généralement pas) être mappés directement au schéma de base de données. –