MVVM Linq2Sql и DataContext - PullRequest
       3

MVVM Linq2Sql и DataContext

3 голосов
/ 18 марта 2012

Я пытаюсь понять, как работать с Linq2Sql в приложении MVVM (WP7). Я думаю, что понимаю основы MVVM, я написал несколько простых тестируемых приложений с этим шаблоном, но я не уверен, как именно я должен сочетать его с L2S.

Я не понимаю нескольких вещей. Как мне управлять DataContext? Есть ли у меня по одному на приложение (как еще я буду отслеживать изменения в сущностях и распространять их в БД)? Можно ли привязать напрямую к сгенерированным модельным классам L2S? Как я могу отслеживать изменения, сделанные в базе данных? Или я должен использовать шаблон хранилища для этого, какие наборы обратных вызовов событий?

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

Как видите, у меня много вопросов :) Мне бы очень хотелось услышать ваше мнение

1 Ответ

1 голос
/ 19 марта 2012

Я думаю, что вы на правильном пути, возможно, следуйте шаблону хранилища.Если вы знакомы с МОК, следуйте по тому же пути.Я, вероятно, посмотрю на насмешку над вашими интерфейсами данных, хотя в долгосрочной перспективе мне будет проще.

Если вы обеспокоены поведением контекста БД, которое оно само (например, отслеживание обновлений) не делает ... Не изперспектива модульного тестирования.Это скорее полноценный интеграционный тест (забавный с точки зрения телефонного приложения, но вы понимаете, о чем я!)

Помните, что на вашем телефоне только один пользователь, и помните о нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...