现在,我已经从实体模型的对象上下文创建了一个新的Object数据源。然后我创建了一个BindingSource和一个设置为此BindingSource的DataGridView。
我可以添加与TraceLine表中的数据绑定的列。当我设置DataSource时,我会看到这些列中的值。但是,我似乎无法从连接表中获取数据。如何将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;
}
答案 0 :(得分:0)
一个可能的问题是DataGridView可能在设计时将其DataSource设置为其中一种类型,但在运行时,您将其设置为具有额外成员的匿名类型。如果我记得,如果在生成列之后更改数据源,DataGridView将不会重新生成列。
您可能需要将数据源设置为null,清除列集合,然后设置数据源。实际上,更好的想法是明确创建列而不是自动生成它们。