Я пытаюсь понять, как работать с Linq2Sql в приложении MVVM (WP7). Я думаю, что понимаю основы MVVM, я написал несколько простых тестируемых приложений с этим шаблоном, но я не уверен, как именно я должен сочетать его с L2S.
Я не понимаю нескольких вещей. Как мне управлять DataContext? Есть ли у меня по одному на приложение (как еще я буду отслеживать изменения в сущностях и распространять их в БД)? Можно ли привязать напрямую к сгенерированным модельным классам L2S? Как я могу отслеживать изменения, сделанные в базе данных? Или я должен использовать шаблон хранилища для этого, какие наборы обратных вызовов событий?
Еще одна вещь, чтобы виртуальные машины легко тестировались, я использую систему инъекций зависимостей и сервисов для некоторых систем приложения. Типичным примером может служить сервис для загрузки из Интернета - чтобы сделать его тестируемым, я создаю и взаимодействую и два класса, которые его реализуют - один для производства и один для тестирования, который возвращает фиктивные данные. Мой вопрос, я должен сделать это для доступа к базе данных тоже? Скажем, все запросы L2S будут выполняться только внутри этой службы, полностью исключая остальную часть приложения от L2S. Или это бессмысленно, и я должен просто иметь глобальный объект / синглтон DataContext и получать к нему доступ из любого места?
Как видите, у меня много вопросов :) Мне бы очень хотелось услышать ваше мнение