Правильно ли я написал запросы в базу данных с наследованием?

Я изучаю EF и Model First. У меня есть таблица, которая имеет наследство.

Вот моя схема EDM: http://gyazo.com/fbec21b5fbfc47dd76ff3eaa38f86d36.png

Я не уверен насчет моих запросов, INSERT, UPDATE и DELETE. Я прав?

    private static void AddNewEmployee()
    {
        using (EmployeesModelContainer context = new EmployeesModelContainer())
        {
            Employee newEmployee = new Employee
            {
                Name = "Вася",
                Surname = "Пупкин",
                Age = 34,
                Sex = Sex.Man,
                ProfessionId = 4,
                EducationLevelId = 1
            };

            context.Persons.Add(newEmployee);

            context.SaveChanges();
        }
    }

    private static void UpdateEmployee()
    {
        using (EmployeesModelContainer context = new EmployeesModelContainer())
        {
            var updateEmployeeQuery = (from employee in context.Persons.OfType<Employee>()
                                       where employee.Name == "Вася"
                                       select employee).FirstOrDefault();

            updateEmployeeQuery.Age = 39;
            updateEmployeeQuery.EducationLevelId = 2;

            context.SaveChanges();
        }
    }

    private static void DeleteEmployee()
    {
        using (EmployeesModelContainer context = new EmployeesModelContainer())
        {
            var deleteEmployeeQuery = (from employee in context.Persons.OfType<Employee>()
                                       where employee.Name == "Вася"
                                       select employee).FirstOrDefault();

            context.Persons.Remove(deleteEmployeeQuery);

            context.SaveChanges();
        }
    }

Вопрос в том, что если мне нужно добавить или удалить некоторые данные в таблице " Сотрудники", почему я добавляю или удаляю данные в таблице " Персона", и это нормально? Добавление данных в таблицы Person и Employees. И если я обновляю некоторые данные в таблице " Сотрудники", почему данные корректно обновляются в таблице " Персона"?

1 ответ

Ты прав. Вы можете добавить Employee к Persons стол, как Employee стол и Persons таблица будет вставлена ​​в. Аналогично, добавление Person к Person стол не касается Employee Таблица.

Для запроса вы используете context.Persons.OfType<Employee>()

Другие вопросы по тегам