2009-11-17 2 views
2

Est-il possible d'obtenir un LINQ to SQL DataContext pour s'exécuter complètement en mémoire? Sans toucher à la base de données?En mémoire DataContext

Je fais du prototypage très rapide, et je veux minimiser la surface pour les changements majeurs puisque l'interface utilisateur change si vite. Cependant, le modèle de données existe déjà.

L'accès aux données est géré par l'utilisation de classes I[Model]Repository qui renvoient les classes de données LINQ to SQL réelles, donc j'ai actuellement des classes concrètes InMemory[Model]Repository qui enfoncent des éléments dans le cache. La mise en œuvre est un peu lourde cependant. Donc ... est-il possible de simplement surcharger le comportement de DataContext pour qu'il s'exécute en mémoire et ne touche jamais la base de données. Mon hypothèse est que ce n'est pas possible, mais je pensais que j'irais pêcher de toute façon.

Répondre

1

Vous ne pouvez le faire que si vous êtes prêt à envelopper l'accès au datacontext avec votre propre interface. Ensuite, pour le prototypage rapide, vous pouvez écrire votre propre alternative datacontext qui implémente cette interface et utilise à la place des listes et LINQ to Objects pour effectuer des requêtes en mémoire.

+0

Oui c'est ce que j'ai pensé. J'enveloppe l'accès à DataContext derrière les interfaces du référentiel afin de cacher les détails de l'implémentation à la couche de présentation, mais j'espérais quelque chose de plus facile. – Josh