将DataGridView绑定到来自不同实体的数据

时间:2012-09-19 16:07:31

标签: c# entity-framework binding datagridview

我正在尝试显示DataGridView中两个相关实体的数据。我知道我可以选择这样的值:

  from tasks in context.TaskSettings
     join train in context.Trainings on tasks.TrainingID equals train.TrainingID
     where tasks.TrainingID == task
           select new {TrainingName = train.TrainingName,  
                       DriversNeeded = tasks.DriversNeeded, 
                       EmployeesPerSupervisor = tasks.EmployeesPerSupervisor};

但是这给了我不可变的值,我感兴趣的是在DataGridView中显示这些值,因此用户只需编辑值并单击Save Changes。

我尝试过其他方法

ObjectQuery<TaskSetting> trainingSettings = 
    (ObjectQuery<TaskSetting>)context.TaskSettings.Where(t => t.TrainingID == task);
dgvTask.DataSource = trainingSettings.Execute(MergeOption.AppendOnly);

但这只是将整个培训实体放在一个列中

我希望能够至少从Training实体获取培训名称,并且仍然可以进行更改并相应地更新数据上下文。我想张贴图片更有帮助,但这是我的第一个问题。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

为什么不更好地实现Mediator Pattern,以便通过将两个实体绑定到Mediator上的单个属性来管理内部编辑。然后将DataGridView绑定到Mediator,并让它管理各个实体的自定义正确更新。

相关问题