Як слід редагувати рядок з'єднання Entity Framework?


115

Нещодавно мені довелося редагувати свій файл app.config, щоб змінити рядок з'єднання для моделі даних ( .edmxфайлу) Entity Framework . Але я хотів би знати: чи є спосіб редагувати рядок з'єднання EF за допомогою конструктора?

Оригінальний рядок з'єднання автоматично генерується майстром моделі даних Entity. Потім рядок з'єднання неможливо змінити - вона залишається відключеною у вікні властивостей дизайнера .edmx. Мені подобається уникати редагування XML вручну, якщо я можу (в app.config), тому мені було цікаво, чи є спосіб повернутися на початковий екран майстра, щоб змінити рядок підключення і дозволити інструменту редагувати файл app.config для мене.

Відповіді:


190

Якщо ви вилучите рядок з'єднання з app.configфайлу, повторний запуск майстра даних об'єкта даних дозволить вам створити нове з'єднання.


17
Відмінно. Це саме та відповідь, яку я шукав. Я просто прокоментував існуючий рядок (а не видалив його), зберег зміни в app.config, клацнув правою кнопкою миші на дизайнері та вибрав Оновити модель із бази даних. Потім майстер дозволить мені включити конфіденційну інформацію (uid & pwd) у рядок з'єднання. Дякую!
DeveloperDan

5
Якщо ви робите модель, спершу клацніть правою кнопкою миші на дизайнері та натисніть "Генерувати базу даних з моделі"
Carl Onager

2
Це працювало і для мене, за винятком того, що мені довелося оновити файл App.config, а потім перезапустити VS.NET 2012. Не було виявлено, що файл App.config змінився.
Гаррі Англійська

2
Мені довелося явно зателефонувати зберегти у файл app.config, щоб дизайнер визнав, що рядок з'єднання видалено.
Роско

1
Альтернативою перезапуску VS є 1. прокоментувати рядок з'єднання в app.config 2. відновити проект, що містить .edmx 3. клацніть правою кнопкою миші поверхню дизайну .edmx та оновіть модель із бази даних ..., яка повинна принести вгору майстра рядків підключення.
RIanGillis

18

Ні, ви не можете редагувати рядок з'єднання в дизайнері. Рядок підключення не є частиною файлу EDMX, це лише посилане значення з конфігураційного файлу, і, ймовірно, через те, що він просто читається лише у вікні властивостей.

Зміна файлу конфігурації є загальним завданням, оскільки іноді хочеться внести зміни, не будуючи додаток. Саме тому існують файли конфігурації.


+1 для нагадування про те, що: якщо вони помістять його у файл конфігурації, це означає, що вони хочуть, щоб ви могли його змінити. Мене в основному хвилює те, що мої зміни можуть бути
відмінені

Вам слід перейти і змінити рядок підключення в конфігурації програми, до якої належить edmx. Не конфігурація додатків верхнього рівня (який використовується під час його запуску). o_0
akava

9

Зазвичай ви визначаєте рядки свого з'єднання в Web.config. Після генерації edmx рядок з'єднання буде зберігатися в App.Config. Якщо ви хочете змінити рядок з'єднання, перейдіть до app.config та видаліть усі рядки з'єднання. Тепер перейдіть до edmx, клацніть правою кнопкою миші на дизайнерській поверхні, виберіть Оновити модель із бази даних , виберіть рядок з'єднання зі спадного меню, Клацніть далі , Додати або Оновити (виберіть те, що ви хочете) та закінчіть.

У вікні виводу буде показано щось подібне,

Згенерований файл моделі: UpostDataModel.edmx. Завантаження метаданих із бази даних зайняло 00: 00: 00.4258157. Створення моделі зайняло 00: 00: 01.5623765. Додано рядок підключення до файлу App.Config.


У мене є аналогічна проблема, але коли я коментую рядок з'єднання, оновлюю модель, вибираю нову рядок з'єднання, мій клас контексту.cs в межах моделі вимивається. Не впевнений, чому це робить, якщо тільки не спроможна створити контекстний клас?
бітшіфт

1
Це не повинно робити. Можливо, ваш інструмент для шаблонів T4 пошкоджений.
DanKodi

Я згоден, це "не повинно". Однак я втратив кількість разів, коли вносив більше декількох нетривіальних змін до основної схеми, що мені довелося з часом просто підірвати модель та створити нову. Можливо, з EF7 та його видаленням файлу edmx може допомогти щось. Так чи інакше, це я те, що я робив і цього разу, просто висвітлив усе в моделі, натиснув на видалення та повернув ці елементи назад.
bitshift

2

Відкрийте .edmx файл будь-якого текстового редактора, змініть схему = " потрібна ваша схема ", а також відкрийте app.config / web.config , змініть ідентифікатор користувача та пароль з рядка з'єднання . ви закінчили.


Так, це вдалося.
ggderas

1

Виконайте наступні дії:

  1. Відкрийте app.config та прокоментуйте рядок з'єднання (збережіть файл)
  2. Відкрийте edmx (перейдіть до властивостей, рядок з'єднання має бути порожнім), знову закрийте файл edmx
  3. Відкрийте програму app.config і скаментуйте рядок з'єднання (збережіть файл)
  4. Відкрийте edmx, перейдіть до властивостей, ви повинні побачити рядок з'єднання оновленим !!
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.