我发现了Entity Framework,我有一个winforms项目和一个在SQLserver上运行的数据库,它有2个表:Student
和Standard
。
首先,我使用向导帮助从数据库创建了一个ADO.NET实体数据模型。然后我有一个DataGridView控件,它有一个绑定源作为DataSource。
DataGridView使用Student
表中的字段正确填充但是我想要做的是向同一个DataGridView添加一列,但是来自Standard
表的数据。看一下图片:
我被困在这里,我不知道该怎么做。
答案 0 :(得分:2)
你应该可以这样做:
public class DataBindingProjection
{
public string StudentName { get; set; }
public date DateOfBirth { get; set; }
public string Height { get; set; }
public string Weight { get; set; }
... etc.
public string StandardName { get; set;
}
在Load()或OnClick()中:
var query = context.Students
.Include(s => s.Standard)
.Select(s => new DataBindingProjection
{
StudentName = s.StudentName,
DateOfBirth = s.DateOfBirth,
Height = s.Height,
Weight = s.Weight,
...
StandardName = s.Standard.StandardName
};
dataGridView1.DataSource = query.ToList();
dataGridView1.Columns[1].DataPropertyName = "StudentName";
dataGridView1.Columns[2].DataPropertyName = "DateOfBirth";
dataGridView1.Columns[3].DataPropertyName = "Height";
dataGridView1.Columns[4].DataPropertyName = "Weight";
dataGridView1.Columns[5].DataPropertyName = "StandardName";
或者您可以手动将这些添加到设计器中。