【问题标题】:Binding DataGridView to data from different entities将 DataGridView 绑定到来自不同实体的数据
【发布时间】:2012-09-11 23:52:13
【问题描述】:

我正在尝试在 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 中显示这些值,以便用户可以编辑这些值并单击保存更改。

我已经尝试过这种其他方法

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

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

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

【问题讨论】:

    标签: c# entity-framework binding datagridview


    【解决方案1】:

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

    【讨论】:

    • 我对实体框架很陌生,我不确定如何使用中介者模式。我试图用“自定义对象”做类似的事情。但我被困在映射回实体部分。
    • @Yoinazek 基本上我在谈论一个中间 C# 类,它不是一个实体,就好像它是一样。为什么?让您的 UI 绑定到来自不同实体的两个属性。
    • 这个中产阶级将负责获取/设置值并映射回实体。知道了。只需要弄清楚怎么做,嘿嘿。谢谢
    猜你喜欢
    • 1970-01-01
    • 2010-11-26
    • 2014-02-02
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多