Рисунок 17.17 – Добавление элемента создания кода
После этого в структуре проекта мы можем увидеть узел EntityModel.tt,
который в качестве подузлов будет содержать сгенерированные классы модели в файлах User.cs, Professor.cs, Thesis.cs и Student.cs:
Рисунок 17.18 – Узел с классами модели
Также здесь мы можем найти файл контекста данных
EntityModel.Context.cs, который выглядит в моем случае следующим образом:
|
Листинг 17.1 – Сгенерированный контекст данных |
|
|
|
|
1 |
using System; |
|
2 |
using System.Data.Entity; |
|
3 |
using System.Data.Entity.Infrastructure; |
|
4 |
public partial class EntityModelContainer : DbContext |
|
5 |
{ |
|
6 |
public EntityModelContainer() |
|
7 |
: base("name=EntityModelContainer"){} |
|
8 |
protected override void OnModelCreating(DbModelBuilder |
|
modelBuilder) |
||
|
||
9 |
{ |
|
10 |
throw new UnintentionalCodeFirstException(); |
|
11 |
} |
|
12 |
public virtual DbSet<User> UserSet { get; set; } |
|
13 |
public virtual DbSet<Student> StudentSet { get; set; } |
|
14 |
public virtual DbSet<Professor> ProfessorSet { get; |
|
set; } |
||
15 |
public virtual DbSet<Thesis> ThesisSet { get; set; } |
|
16 |
} |
Теперь сгенерируем базу данных по нашей модели. Итак, нажмем на диаграмму модели правой кнопкой мыши и в выпадающем списке выберем
Сформировать базу данных на основе модели. Перед нами откроется мастер создания подключения.
Рисунок 17.19 – Мастер создания базы данных
Нажмем на кнопку Создать подключение. Далее открывается новое окно, где будет предложено настроить подключение и создать базу данных:
Рисунок 17.20 – Создание базы данных
Здесь нам надо указать путь, куда будет сохраняться создаваемая база данных, и указать ее имя. В качестве имени базы данных введем LR6DB.
Нажмем OK и затем Visual Studio установит в качестве подключения модели только что созданную базу данных. После этого будет сгенерирован скрипт базы данных1:
Рисунок 17.21 – DDL-скрипт для создания элементов базы данных
1 Если при генерации скрипта будет выводится ошибка, перезапустите Visual Studio
Нажмем Готово. У нас автоматически откроется в Visual Studio файл скрипта EntityModel.edmx.sql. И в завершении нам надо будет запустить этот скрипт. Для этого нажмем в верхнем левом углу на зеленую кнопку
Выполнить:
Рисунок 17.22 –Запуск скрипта
После этого в нижнем окне Visual Studio нам сообщит об успешном (или неуспешном) создании базы данных. Если мы откроем окно Обозреватель серверов (его можно открыть, выбрав в меню Вид → Другие окна), то мы увидим нашу базу данных. А раскрыв узел, также увидим, что она содержит всю ту схему, которую мы определили в модели:
Рисунок 17.23 – Обзор созданной базы данных
§17.16 Создание интерфейса приложения
§17.117.1 TableLayoutPanel
Для организации элементов управления в связанные группы существуют специальные элементы - контейнеры. Например, Panel, FlowLayoutPanel, SplitContainer, GroupBox. Ту же форму также можно отнести к контейнерам.
Использование контейнеров облегчает управление элементами, а также придает форме определенный визуальный стиль.
Все контейнеры имеют свойство Controls, которое содержит все элементы данного контейнера. Когда мы переносим какой-нибудь элемент с панели инструментов на контейнер, например, кнопку, она автоматически добавляется в данную коллекцию данного контейнера. Либо мы также можем добавить элемент управления динамически с помощью кода в эту же коллекцию.
Элемент TableLayoutPanel также переопределяет панель и располагает дочерние элементы управления в виде таблицы, где для каждого элемента имеется своя ячейка. Если нам хочется поместить в ячейку более одного элемента, то в эту ячейку добавляется другой компонент TableLayoutPanel, в
который затем вкладываются другие элементы.
Чтобы установить нужное число строки столбцов таблицы, мы можем использовать свойства Rows и Columns соответственно. Выбрав один из этих пунктов в окне Свойства, нам отобразится следующее окно для настройки столбцов и строк: