У меня есть два в моих контекстах приложения, оба равны в схеме & Структура, одна на удаленном сервере, а другая - локальный сервер, установленный на компьютере. Предполагается, что обе базы данных одинаковы, но с разными данными, я пытаюсь сделать, это получить все данные из обоих контекстов для сравнения, и поэтому я могу иметь одни и те же данные в обеих базах данных. Использование метода расширения Distinct не работает одинаково. Мой класс называется Пользователи, а их атрибуты: ID, Имя, Фамилия, Пользователь, Пароль. Поле идентификатора Identity Not null. Теперь у меня есть только идентичная запись в обеих базах данных, поэтому использование Distinct не должно возвращать данные, но я их возвращал. Я проверил хэш методом GetHashCode, и они разные. Вот мой код:Как сравнить два объекта из двух разных контекстов
foreach (var item in remote.Users)
lstUsers.Add(item);
foreach (var item in local.Users)
lstUsers.Add(item);
var results = lstUsers.Distinct().ToList();
Не нужно сравнивать идентификатор, потому что он может быть другим. – Richard
Я бы не ожидал, что это скомпилируется ... Не удаленный.Использует коллекцию другого типа, чем local.Users? Итак, как они могут быть добавлены в один список? – GendoIkari
@GendoIkari: Предположительно, они одного типа, потому что схемы БД считаются идентичными. Насколько мне известно, каждый DbContext может иметь отдельный «DbSet» (хотя я его никогда не пробовал). –