实体框架。数据库表更改时如何自动更新comboBox?

时间:2012-09-21 21:42:32

标签: c# entity-framework

我刚开始使用C#和Entity Framework(5.0)。 我有以下代码将我的组合框绑定到我的数据库表但是当我更新我的员工列表时,comboBox不会自动更新。 我能想到的唯一解决方案是将linq查询放入一个单独的方法update_cmbEmployees()并在每次需要更新时调用它,但这不是一个非常优雅的解决方案,并且在复杂的应用程序中可能会很混乱。所以我认为必须有一个更好的解决方案来解决这样的问题。有什么事情我可以联系到吗?或者也许我绑定它都错了?

BindingSource bsCmbEmployees;
    private void Form1_Load(object sender, EventArgs e)
    {
        using( var ctx = new TimeKeepEntities())
        {
            var activeEEs = from ee in ctx.tblEmployees
                            where ee.Active
                            select ee;

            bsCmbEmployees = new BindingSource();
            bsCmbEmployees.DataSource = activeEEs.ToList();
            cmbEmployees.DataSource = bsCmbEmployees;
            cmbEmployees.DisplayMember = "Name";
            cmbEmployees.ValueMember = "EeID";
          }
   }

Edit1:添加了实体框架版本

1 个答案:

答案 0 :(得分:0)

AFAIK在EF中插入/更新数据时,无法“触发”某些事件。我认为你目前的做法没有问题。

此外,我不知道它如何在复杂的应用程序中变得混乱。我从事过具有类似和更复杂需求的企业级多层Web /桌面应用程序,而无需编写凌乱的代码。您能否详细说明您在复杂情况下遇到的问题?