¿Cómo abstraes tu código de persistencia cuando usas LINQ to SQL?

Me encanta LINQ to SQL, pero me ha estado molestando que al usarlo, mi código de repositorio se genera por el marco LINQ to SQL y, por lo tanto, se acopla estrechamente a una base de datos de SQL Server.

¿Alguno de ustedes está utilizando LINQ to SQL de una manera abstracta y poco acoplada? De ser así, ¿cómo abordaron el problema de mantener su código de base de datos independiente?

Respuestas a la pregunta(8)

Su respuesta a la pregunta