Нужно ли заново создавать классы моделей при использовании шаблона репозитория
Я использую LinqtoSQL для приложения WPF MV-VM, так как в будущем я могу захотеть перейти с LinqtoSql на что-то другое, например, на Entity Framework или Subsonic и т. Д., Таким образом, я нашел шаблон репозитория полезным,
Мой вопрос: как мне создать классы модели, предположим, у меня есть таблица в базе данных, я понимаю, что не могу использовать сгенерированный класс LINQtoSQL в качестве класса модели, если я это сделаю, то я стану зависимым от LinqtoSQL, который inturn будет лишить меня независимости от реализации шаблона хранилища, означает ли это, что мне нужно будет иметь свои собственные пользовательские классы для всех классов сущностей?
2 ответа
Господи, нет. Зачем ты сделал это для себя?
Вам уже приходится так много дублировать в ваших моделях ViewModels, зачем добавлять еще один слой дублирования для такого небольшого усиления, особенно учитывая, что L2S может использовать обычные типы cl?
Я считаю свои контракты на обслуживание из служб WCF и типы ORM моей моделью. То, что он не находится в пространстве имен *.Model, не означает ничего.
Если вам кажется, что вам нужен этот смазочный слой, пусть этот слой будет вашими ViewModels. Вот для чего они здесь.
Да, это означает, что вам нужно реализовать свои собственные классы для всех классов сущностей. Это боль, но это текущее положение вещей.
См. Этот ответ SO для получения дополнительной информации по этому вопросу, а также некоторые возможные средства правовой защиты.