Как связать запрос с объединением с DataGridView? - PullRequest
1 голос
/ 22 июня 2010

Прямо сейчас я создал новый источник данных объекта, основанный на контексте объекта из модели объекта.Затем я создал BindingSource и DataGridView, установленный для этого BindingSource.

Я могу добавить столбцы, которые связаны с данными из таблицы TraceLine.Когда я устанавливаю источник данных, я вижу значения в этих столбцах.Тем не менее, я не могу получить данные из объединенной таблицы.Как связать DataGridView с запросом, который имеет объединение?

using (var entities = new MyEntities())
{
    var lines = from t in entities.Lines
                join m in entities.Methods on t.MethodHash equals m.MethodHash
                where t.UserSessionProcessId == m_SessionId
                select new
                {
                    m.Name,  // doesn't get displayed in DataGridView, but I want it to
                    t.Sequence,
                    t.InclusiveDuration,
                    t.ExclusiveDuration
                };

    dgvBindingSource.DataSource = lines;
}

1 Ответ

0 голосов
/ 22 июня 2010

Одной из возможных проблем является то, что DataGridView может иметь свой DataSource, установленный во время разработки для одного из типов, но во время выполнения вы устанавливаете для него анонимный тип, который имеет дополнительный член.Насколько я помню, DataGridView не будет повторно генерировать столбцы, если вы измените источник данных после того, как столбцы были сгенерированы.

Возможно, вам потребуется установить нулевой источник данных, очистить коллекцию столбцов, а затем установитьисточник данных.Фактически, лучшей идеей было бы создать столбцы явно, а не автоматически генерировать их.

...