Использование Visual Studio в сценарии Database First
Примечания
-
Для СУБД ЛИНТЕР Visual Studio не может создать больше 5 указанных таблиц в одной EDMX-модели, поэтому необходимо использовать утилиту EdmGen.exe.
-
Но если в окне "Choose Your Database Objects and Setting" (рис. 62) установить флажок напротив узла "Tables", то будет создана EDMX-модель из всех таблиц БД, при этом нет ограничения на количество таблиц в одной EDMX-модели.
Пример создания модели EDMX на основе существующей БД с помощью Visual Studio 2015:
-
перед началом работы увеличить максимальный размер сортируемой записи в БД (это необходимо для выполнения запросов, которые формируются мастером Visual Studio): с помощью программы inl.exe, которая находится в подкаталоге
/bin
установочного каталога СУБД ЛИНТЕР, надо выполнить следующий запрос:ALTER DATABASE SET RECORD SIZE LIMIT 40000;
-
перезапустить ядро СУБД ЛИНТЕР (см. документ «СУБД ЛИНТЕР. Запуск и останов СУБД ЛИНТЕР в среде ОС Windows»);
-
запустить Visual Studio, создать новый или открыть существующий проект;
-
открыть файл
App.config
, ввести следующий текст и сохранить файл:< ?xml version="1.0" encoding="utf-8"? > < configuration > < configSections > < section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" / > < /configSections > < entityFramework > < providers > < provider invariantName="System.Data.LinterClient" type="System.Data.LinterClient.Entity.LinterProviderServices, EntityFramework.Linter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=04c2ab4f9b7aa4d0" / > < /providers > < defaultConnectionFactory type="System.Data.Entity.Infrastructure.LinterConnectionFactory, EntityFramework.Linter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=04c2ab4f9b7aa4d0" / > < /entityFramework > < /configuration >
-
в окне Solution Explorer щёлкнуть правой кнопкой мыши по узлу References и в контекстном меню выбрать Add Reference… (рис. 15).
Рисунок 15. Контекстное меню References
-
в окне Reference Manager выбрать Assemblies= >Extensions, установить флажок напротив сборки EntityFramework.Linter и нажать кнопку OK (рис. 16).
Рисунок 16. Окно Reference Manager
-
в окне Solution Explorer щёлкнуть правой кнопкой мыши по узлу Solution и в контекстном меню выбрать Manage NuGet Packages for Solution… (рис. 17).
Рисунок 17. Контекстное меню Solution
-
в окне Manage Packages for Solution нажать кнопку Browse, выбрать пакет EntityFramework, установить флажок напротив имени проекта и нажать кнопку Install (рис. 18).
Рисунок 18. Окно Manage Packages for Solution
Примечание
Если кнопка Install не активна, это значит, что пакет EntityFramwork уже установлен.
-
если появится окно Preview, нажать кнопку OK (рис. 19).
Рисунок 19. Окно Preview
-
в окне License Acceptance нажать кнопку I Accept (рис. 20).
Рисунок 20. Окно License Acceptance
-
в меню Visual Studio выбрать Build= >Build Solution (рис. 21).
Рисунок 21. Меню Build
-
в окне Solution Explorer щелкнуть правой кнопкой мыши по названию проекта и в контекстном меню выбрать: Add= >New Item…(рис. 22).
Рисунок 22. Контекстное меню проекта
-
в окне Add New Item выбрать Installed= >Visual C# Items= >Data= >ADO.NET Entity Data Model и нажать кнопку Add (рис. 23).
Рисунок 23. Окно Add New Item
-
в окне Choose Model Contents выбрать EF Designer from database и нажать кнопку Next > (рис. 24).
Рисунок 24. Окно Choose Model Contents
-
в окне Choose Your Data Connection нажать кнопку New Connection… (рис. 25).
Рисунок 25. Окно Choose Your Data Connection
-
если появится окно Connection Properties, в котором источник данных не принадлежит СУБД ЛИНТЕР, нажать кнопку Change… (рис. 26).
Рисунок 26. Окно Connection Properties
-
в окне Change Data Source выбрать источник данных Linter Database и нажать кнопку OK (рис. 27).
Рисунок 27. Окно Change Data Source
-
в окне Connection Properties ввести параметры подключения к ЛИНТЕР-серверу и нажать кнопку OK (рис. 28).
Рисунок 28. Окно Connection Properties
-
в окне Choose Your Data Connection нажать кнопку Next > (рис. 29).
Рисунок 29. Окно Choose Your Data Connection
-
в окне Choose Your Database Objects and Settings установить флажки напротив тех объектов БД, которые необходимо включить в EDMX-модель, и нажать кнопку Finish (рис. 30).
Рисунок 30. Окно Choose Your Database Objects and Settings
Примечание
Отмеченные таблицы должны иметь первичный ключ. Если первичный ключ в таблице отсутствует, но есть поле с атрибутом NOT NULL, то сущность в модели EDMX будет доступна только для чтения. Если отсутствуют и первичный ключ, и поле с атрибутом NOT NULL, то в модели EDMX не будет создана сущность для данной таблицы.
-
выполнить, при необходимости, редактирование модели EDMX с помощью команд из контекстного меню, например, для добавления новой сущности надо щелкнуть правой кнопкой мыши по свободному пространству редактора EDMX-модели и в контекстном меню выбрать команду Add New= >Entity… (рис. 31).
Рисунок 31. Контекстное меню редактора EDMX-модели