实体框架更新 - 上下文当前未跟踪实体

时间:2011-12-17 20:42:06

标签: entity-framework-4 objectcontext

我正在尝试更新实体,但我收到以下错误:

  

上下文目前没有跟踪实体。

我的数据库表包含以下字段:

  

fixturedate,leagueID(FK),A队(FK),B队(FK)。

我的代码如下:

public void UpdateFixture(Fixture validFixture)
{
    Fixture fixture = new Fixture();
    fixture = entities.Fixtures.Where(f => f.fixtureId == validFixture.fixtureId).FirstOrDefault();

    League league = new League();
    league.LeagueId = validFixture.leagueId;
    fixture.League = leagueActions.GetLeague(league);

    fixture.Team1 = teamActions.GetTeam(validFixture.teamA);
    fixture.Team2 = teamActions.GetTeam(validFixture.teamB);

    entities.UpdateObject(validFixture);
    entities.SaveChanges();
}

当我entities.AttachTo("Fixtures", validFixture);时,我收到以下错误:

  

上下文已经在跟踪具有相同资源Uri的不同实体。

更新灯具实体需要做些什么?

1 个答案:

答案 0 :(得分:2)

为什么没有跟踪validFixture在你的代码中是不明确的,但是你选择了一个与validFixture实例具有相同ID的Fixture实体,这意味着它现在通过“fixture”实例跟踪该实体。

基本上这意味着您可以直接通过“fixture”实例更新实体。尝试通过调用UpdateObject方法删除该行。