Обновление Entity Framework - контекст в настоящее время не отслеживает сущность - PullRequest
3 голосов
/ 18 декабря 2011

Я пытаюсь обновить объект, но получаю следующую ошибку:

Контекст в настоящее время не отслеживает сущность.

Моя таблица БД состоит из следующих полей:

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 Ответ

2 голосов
/ 18 декабря 2011

Почему validFixture не отслеживается, неясно из вашего кода, однако вы выбираете сущность Fixture с тем же идентификатором, что и экземпляр validFixture, что означает, что теперь она отслеживает эту сущность через экземпляр «fixture».

По сути, это означает, что вы можете обновить сущность напрямую через экземпляр «fixture».Попробуйте просто удалить строку с вызовом метода UpdateObject.

...