Материал: Глава 17.2 Entity Framework

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Реализация метода обработчика события нажатия на кнопку «Зарегистрироваться»:

 

 

Листинг 17.27

 

 

 

 

if (textBoxUserLogin.Text != ""

 

 

&& textBoxUserPassword.Text != ""

 

 

&& textBoxUserProfileName.Text != ""

С помощью составного условия проверяется

1

&& textBoxUserProfileNumberGroup.Text != ""

заполненность всех полей.

 

 

&& textBoxUserProfilePersonalDate.Text != ""

 

 

&& comboBoxUserRole.Text != "")

 

 

 

 

2

{

 

 

 

 

 

 

3

using (UserContext db = new UserContext())

Подключение контекста данных UserContext

 

 

 

 

 

4

{

 

 

 

 

 

 

 

User user = new User { Login =

Создание объекта user класса User и

 

textBoxUserLogin.Text, Password =

 

инициализация его свойств данными,

5

textBoxUserPassword.Text, Role =

 

 

введенными через соответствующие textBox

 

comboBoxUserRole.Text };

 

 

 

 

 

 

db.Users.Add(user);

Добавление созданного объекта user в

6

коллекцию сущностей Users из контекста

 

 

 

 

 

 

11

 

 

данных, отвечающую за хранение сущностей в

 

 

базе данных

 

 

 

 

db.SaveChanges();

Сохранение изменений результата запроса в базе

7

данных

 

 

 

 

 

 

 

if (comboBoxUserRole.Text == "Студент")

Если выбранное значение в раскрывающемся

8

списке comboBox это "Студент"

 

 

 

 

 

 

9

{

 

 

 

 

 

 

 

UserProfile userProfile = new UserProfile { Id =

 

 

user.Id, Name = textBoxUserProfileName.Text,

Создание объекта userProfile класса

 

NumberGroup =

UserProfile и инициализация его свойств

10

int.Parse(textBoxUserProfileNumberGroup.Text),

данными, введенными через соответствующие

 

PersonalDate = textBoxUserProfilePersonalDate.Text

textBox

 

};

 

 

 

 

 

 

Добавление созданного объекта userProfile в

 

db.UserProfiles.Add(userProfile);

коллекцию сущностей UserProfiles из

11

контекста данных, отвечающую за хранение

 

 

 

 

сущностей в базе данных

 

 

 

12

 

db.SaveChanges();

Сохранение изменений результата запроса в базе

12

данных

 

 

 

 

 

13

}

 

 

 

 

 

else if (comboBoxUserRole.Text == "Преподаватель")

Если выбранное значение в раскрывающемся

14

списке comboBox это "Преподаватель"

 

 

 

 

 

15

{

 

 

 

 

 

UserProfile userProfile = new UserProfile { Id =

Создание объекта userProfile класса

 

UserProfile и инициализация его свойств

 

user.Id, Name = textBoxUserProfileName.Text,

 

данными, введенными через соответствующие

16

NumberGroup = 0, PersonalDate =

textbox (для преподавателя номер группы будет

 

textBoxUserProfilePersonalDate.Text };

 

по умолчанию равен 0)

 

 

 

 

 

 

 

Добавление созданного объекта userProfile в

 

db.UserProfiles.Add(userProfile);

коллекцию сущностей UserProfiles из

17

контекста данных, отвечающую за хранение

 

 

 

 

сущностей в базе данных

 

 

 

 

db.SaveChanges();

Сохранение изменений результата запроса в базе

18

данных

 

 

 

 

 

13

 

 

Создание объекта professor класса Professor

 

Professor professor = new Professor { Id =

и инициализация его свойств данными,

 

userProfile.Id, Name =

введенными через соответствующие textbox

19

textBoxUserProfileName.Text, PersonalData =

(при регистрации преподавателя создается

 

textBoxUserProfilePersonalDate.Text, Position =

последовательно две сущности – для хранения

 

textBoxUserProfileNumberGroup.Text };

профиля преподавателя как пользователя

 

 

системы и дипломного руководителя)

 

 

 

 

 

Добавление созданного объекта professor в

 

db.Professors.Add(professor);

коллекцию сущностей Professors из контекста

20

данных, отвечающую за хранение сущностей в

 

 

 

 

базе данных

 

 

 

 

db.SaveChanges();

Сохранение изменений результата запроса в базе

21

данных

 

 

 

 

 

22

}

 

 

 

 

23

}

 

 

 

 

 

this.MainForm.Visible = true;

Переход в форму авторизации после успешной

24

регистрации

 

 

 

 

 

25

this.Visible = false;

Скрытие формы регистрации

 

 

 

26

}

 

 

 

 

 

14

 

Обратите внимание, что при создании двух объектов, связанных между собой отношением один ко многим,

необходимо инициализировать атрибут Id подчиненного объекта (в нашей случае подчиненным является userProfile

в паре user-userProfile и professor в паре userProfile-professor) значением атрибута Id родительского объекта. Например, в строке 10 и 16 при создании объекта userProfile свойству Id было присвоено значение user.Id,

то есть Id родительского объекта user, который был предварительно создан.

Рассмотрим пример редактирования данных. Добавим возможность редактирования логина, пароля и информации

«О себе» после входа в личную страницу пользователя в информационной системе. Создадим следующую форму для редактирования данных учетной записи пользователя:

Рисунок 2

Реализация метода обработчика события нажатия на кнопку подтверждения изменений « »:

15

Источник: https://studfile.net/preview/16573805/