Я пытаюсь узнать Asp.net Mvc, поэтому я пытаюсь сделать this Учебное пособие.Asp.net Mvc: Создание классов моделей с LINQ to SQL
Они рассказывают о шаблоне репозитория и о том, как легко перейти на другую технологию доступа к данным, а не просто позвонить Linq в Sql напрямую.
Использование LINQ to SQL в классе контроллера затрудняет переход технологий доступа к данным в будущем. Например, вы можете перейти от использования Microsoft LINQ to SQL к использованию Microsoft Entity Framework в качестве технологии доступа к данным. В этом случае вам нужно будет переписать каждый контроллер, который обращается к базе данных в вашем приложении.
Примечание: Я никогда не понимал, как работает интерфейс, прежде чем читать этот учебник, и он все еще не на 100% понятен. Я рассматриваю его сейчас как своего рода «шаблон» для класса.
После успешного использования Linq to Sql я подумал, что было бы неплохо попробовать Ado.net Entity Framework, так как я много читал об этом. Они сказали, что использование шаблона репозитория позволит легко переключаться, поэтому я решил проверить это.
Мой вопрос: Что мне делать, чтобы изменить Ado.net EF?
Это то, что я думаю, что должен делать.
- Добавьте файл Movie.edmx и настройте его (добавьте мою таблицу фильмов).
- Напишите новый класс на основе IMovieRepository и, возможно, назовите его MovieEFRepository.
- Измените параметр в конструкторе контроллера на MovieEFRepository. Это первое, что мне кажется странным, потому что в учебнике говорится, что использование репозитория не приведет к изменению всех контроллеров, если вы перейдете на другой источник данных. Разве мне не нужно менять каждый контроллер, так как я задаю класс MovieRepository?
- Последняя корректировка, я думаю, мне нужно сделать, это изменить вид. Потому что он использует класс Product, созданный дизайнером Linq to Sql. Я не уверен, как я это сделаю. Думаю, я должен был использовать какой-то объект, который не зависел от файла dbml?
Простите меня, если у меня есть упрощенный вид Asp.net Mvc. Я webdesigner с большим интересом для веб-разработки Asp.net.
Хороший вопрос. –