实体框架更新错误的表

时间:2015-02-25 07:58:57

标签: c# entity-framework postal-code

我的旧应用程序存在很大问题。它是带有实体框架的c#。现在我有一个表Person(Name,StreetName,Phone,PostCodeId等)和另一个表PostCode(Id,PostCode,CityName)。我有一个编辑表单,用户可以在其中添加/编辑人员。人物编辑表格包括用于键入或选择邮政编码的组合框。

当用户选择/键入新的邮政编码时,人物对象用新的邮政编码对象更新,并且当用户保存时,人物对象被保存。然后,框架更新邮政编码表,将旧邮政编码的城市名称更改为新的城市名称。我想要它做的是使用新的邮政编码更新人员表。

这是邮政编码组合的SelectIndexChanged中的代码:

    private void PostCodeCombo_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (PostCodeCombo.SelectedItem != null)
        {
            person.PostCode = (BSSModel.PostCode)PostCodeCombo.SelectedItem;
            personBindingSource.EndEdit();
        }
        CityNameLabel.Text = person.PostCode.CityName;
    }

任何人都可以给我一些想法,或者出了什么问题?我对实体框架的工作原理并不是很了解。 Person表具有PostCode表的外键,以使框架在数据模型中链接这两个。这个外键能不能以某种方式出错?

祝你好运   汉斯米林......

1 个答案:

答案 0 :(得分:0)

我的解决方案是创建对象的副本并删除旧对象,然后在保存之前编辑副本的邮政编码。然后该对象获得一个新的id,但由于没有其他表指向person表;它不会造成任何问题。