georgich
@georgich

Как отобразить данные из двух связанных таблиц?

Приветствую.
513254ee359a4ab686c0f2d796a6148f.png
На рисунке представлен кусок схемы БД. Нас интересуют таблицы: подразделения, звания, сотрудники. В DataGridView мне нужно, чтобы вместо индексов в колонках Звание и Подразделения были соответствующие записи из связанных таблиц. Для этого я сделал так:
private void СотрудникиФорма_Load(object sender, EventArgs e)
        {
            _context = new DatabaseSQLEntities();
            _context.Configuration.LazyLoadingEnabled = true;
            _context.Configuration.ValidateOnSaveEnabled = true;

            var employeeList = (from employee in _context.Сотрудники
                                join rank in _context.Звания on employee.Звание equals rank.Код
                                join department in _context.Подразделения on employee.Подразделение equals department.Код
                                select new
                                {
                                    employee.Имя,
                                    employee.Фамилия,
                                    employee.Отчество,
                                    employee.Объем_груди,
                                    employee.Рост,
                                    employee.Пол,
                                    rank.Звание,
                                    department.Наименование
                                }).ToList();

            сотрудникиBindingSource.DataSource = employeeList;
        }

Звание отображается, а вот Подразделение никак не хочет. Что я делаю не так?
Спасибо!
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
georgich
@georgich Автор вопроса
Это был тест на внимательность :)
В таблице Подразделения меняем колонку Наименование на Подразделение. Код, соответственно, поменяется на такой:
public СотрудникиФорма()
        {
            InitializeComponent();

            _context = new Database21SQLEntities();
            _context.Сотрудники.Load();

            var employeeList = (from employee in _context.Сотрудники
                                join rank in _context.Звания on employee.Звание equals rank.Код
                                join department in _context.Подразделения on employee.Подразделение equals department.Код
                                select new
                                {
                                    employee.Имя,
                                    employee.Фамилия,
                                    employee.Отчество,
                                    employee.Объем_груди,
                                    employee.Рост,
                                    employee.Пол,
                                    rank.Звание,
                                    department.Подразделение
                                }).ToList();

            сотрудникиBindingSource.DataSource = employeeList;
        }

P.S. К сожалению на Хабре и на Тостере становится все меньше и меньше специалистов...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы