MVC 3, Code First та SQL Express або як налаштувати підключення сайту
Вступ
Стаття із циклу "Як я.". Заснована на особистому досвіді.
Де почитати про MVC3?
З виходом MVC3 стали з'являтися статті з прикладами щодо побудови сайту на цій базі за допомогою Entity Framework 4.1. Але незадача, особливості підключення до бази (яка повинна генеруватися "на льоту") ніде до ладу не вдавалося знайти. Навіть на офіційному сайті у навчальному посібнику (tutorial) використовує SQL Compact Edition 4.0. Саме так і написано в заголовку навчального матеріалу в списку вимог, і тут же можна знайти посилання на завантаження.
Процес підключення
Як Ви вже напевно знаєте, code first означає лише те, що воно означає (вибачте за каламбур) у перекладі з англійської "спочатку код". Якщо коротко, то спочатку ви описуєте (кодуєте) свої класи використовувані в додатку, з усіма зв'язками та залежностями в коді, а потім, за помахом чарівної палички, ваші класи перетворюються на добре структуровану та оптимізовану базу даних для зберігання тих самих даних від ваших класів . Звучить красиво і страшенно зручно (перевірено!).
Це з прикладу на офіційному сайті. Ви не можете створити connection string. Якщо ви не створюєте один, Framework Entity буде автоматично створювати SQL Server Express database for you. У цій літературі, як, ви працюєте з SQL Server Compact, так що вам потрібно створити connection string до specify that.
Ну, а якщо можна, вирішив спробувати "прикрутити" Code First до SQL Express ... Оп-па! А не тут було! Не вийшло, уперлася, і в жодну. Вбив багато часу і вирішив все-таки подужати приклад з використанням SQL SE. Встановлено Microsoft SQL Server Compact 4.0. Настроював рядок підключення:
Ура. Запрацювало! Створені в додаток моделі при запуску (компіляції) програми відразу оновлювали таблиці в базі (school.sdf).
Знову вирішив спробувати підключитися на SQL Express.
І, о, диво! Заробило також! Задався думкою, можливо це пов'язано з тим, що SQL Compact Edition не було встановлено? Перевірка на іншій машині, на якій не встановлено MS SQL Compact Edition, увінчалася успіхом. Однак, потрібно встановити ASP.NET MVC 3 Tools Update і більше нічого. Проект відкомпілювався та запустився. База успішно створилася і MS SQL Express Edition і MS SQL Standart Edition, і, відповідно на MS SQL Compact Edition.
Пишіть вірно! Рядок підключення має дуже важливе значення. :)
У статті я спеціально зібрав посилання, які стосуються саме MVC3, тому що засилля статей про інші версії (у тому числі і Preview) дуже багато. Ось на здоров'я: