Выбор строки в SSMS приводит к сбою Entity Framework 4 - PullRequest
1 голос
/ 03 июня 2010

У меня есть простой модульный тест Entity Framework 4, который создает новую запись, сохраняет ее, пытается найти, а затем удаляет. Все прекрасно работает, если только ...

... Я открываю SQL Server Management Studio, находясь в точке останова в модульном тесте, и выполняю инструкцию SELECT, которая возвращает только что созданную строку ( не SELECT FOR UPDATE, а не WITH (updlock) ), без транзакций, просто обычный SELECT).

Если я сделаю это перед попыткой найти только что созданную строку, я не найду строку. Если я вместо этого сделаю это после нахождения строки, но перед удалением строки, я найду строку, но получу исключение OptimisticConcurrencyException.

Это постоянно повторяется.

Модульный тест:

[TestMethod()]
public void CreateFindDeleteActiveParticipantsTest()
{
    // Setup this test
    Participant utPart = CreateUTParticipant();

    ctx.Participants.AddObject(utPart);
    ctx.SaveChanges();

    // External SELECT Point #1:
    // part is null

    // Find participant
    Participant part = ParticipantRepository.Find(UT_SURVEY_ID, UT_TOKEN);
    Assert.IsNotNull(part, "Expected to find a participant");

    // External SELECT Point #2: 
    // SaveChanges throws OptimisticConcurrencyException

    // Cleanup this test
    ctx.Participants.DeleteObject(utPart);
    ctx.SaveChanges();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...