Контекст Entity Framework не очищается между предложениями where - PullRequest
0 голосов
/ 26 сентября 2019

Я использую EF 6.0 с WPF.Я изначально загружаю свои данные в сетку данных с условием условия where.Затем пользователь может изменить предложение where из пользовательского интерфейса.То, что происходит, является первым, где пункт о нагрузке работает нормально.Затем, когда выполняется второе предложение where, данные добавляются в первый локальный контекст.Есть ли способ очистить локальный контекст, чтобы при выполнении другого запроса контекст не содержал данных из обоих?

Я пытался отсоединить контекст, но получаю ошибку: _context.Entry (abc) .State = EntityState.Detached;

try
{
   _context.myData.Where(x => x.myFlag == true).Load();
}

catch (Exception except)
{
    // error
}

myVSource.Source = _context.myData.Local;

\\ then I have a click even which chnages the where clause

private void RefreshData_Click(object sender, RoutedEventArgs e)
{
    _context.myData.Where(x => x.myFlag == false).Load();
}

1 Ответ

0 голосов
/ 27 сентября 2019

На самом деле я нашел решение.В событии click я просто добавил:

_context.Set (). Local.ToList (). ForEach (x => _context.Entry (x) .State = EntityState.Detached);

перед _context.myData.Where (x => x.myFlag == false) .Load ();и он очистил текущие данные отображаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...