Para utilizar completamente LinqToSql en una aplicación ASP.net 3.5, es necesario crear DataContextclasses (que generalmente se realiza utilizando el diseñador en VS 2008). Desde la perspectiva de la interfaz de usuario, DataContext es un diseño de las secciones de su base de datos a las que le gustaría exponer a través de LinqToSql y es integral en la configuración de las características de ORM de LinqToSql.¿Son varias las clases de DataContext apropiadas?
Mi pregunta es: estoy configurando un proyecto que utiliza una gran base de datos donde todas las tablas están interconectadas de alguna manera a través de claves externas. Mi primera inclinación es hacer una gran clase de DataContext que modele toda la base de datos. De esa manera podría en teoría (aunque no sé si esto sería necesario en la práctica) usar las conexiones de clave externa que se generan a través de LinqToSql para ir fácilmente entre objetos relacionados en mi código, insertar objetos relacionados, etc.
Sin embargo, después de pensarlo un poco, ahora estoy pensando que puede tener más sentido crear múltiples clases de DataContext, cada una relacionada con un espacio de nombre específico o una sección lógica interrelacionada dentro de mi base de datos. Mi principal preocupación es que crear instancias y eliminar una gran clase de DataContext todo el tiempo para las operaciones individuales que se relacionan con áreas específicas de la base de datos sería imponer una imposición innecesaria sobre los recursos de la aplicación. Además, es más fácil crear y administrar archivos DataContext más pequeños que uno grande. Lo que perdería sería que habría algunas secciones distantes de la base de datos que no serían navegables a través de LinqToSql (aunque una cadena de relaciones las conecta en la base de datos real). Además, habría algunas clases de tabla que existirían en más de un DataContext.
¿Alguna idea o experiencia sobre si múltiples DataContexts (correspondientes a los espacios de nombres DB) son apropiados en lugar de (o además de) una clase DataContext muy grande (correspondiente a la base de datos completa)?
Sí, la OP no es correcto en el supuesto de que una gran DC toma más tiempo para crear una instancia. De hecho, después de que se crea la primera instancia en un proceso en ejecución, los casos subsiguientes del mismo DC pueden ser creados de forma casi instantánea. –