Правильно ли я написал запросы в базу данных с наследованием?
Я изучаю 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>()