2015-04-09 2 views
0

У меня есть база данных из 4000+ объектов, большинство из которых являются дубликатами. Я хотел бы создать новое представление о них и сократить список, показывая только 1 экземпляр каждого элемента по имени и фамилии. Я уже создал метод в моем репозитории, который, как я думаю, должен работать, а также кнопку для отображения моего нового списка. Я думаю, что лучший способ сделать это - использовать JavaScript или JQuery, но я не уверен, как это работает.Скрытие повторяющихся пользователей из структуры Entity

Это мой Дублированный Пользователь метод сортировки:

public List<CustomerUserNameDto> GetDuplicateUsers() 
    { 
     List<CustomerUserNameDto> userList = new List<CustomerUserNameDto>(); 
     var list = _dbContext.CustomerUsers.ToList(); 
     foreach (var customer in list) 
     { 
      CustomerUserNameDto dto = new CustomerUserNameDto(); 
      dto.CustomerUserId = customer.CustomerUserId; 

      dto.FirstName = customer.FirstName; 
      dto.LastName = customer.LastName; 

      var check = userList.Find(y => y.FirstName == dto.FirstName && y.LastName == dto.LastName); 
      if (check == null) 
      { 
       userList.Add(dto); 
      } 


     } 

     return userList; 
    } 

И JavaScript У меня до сих пор:

function GetDuplicateUserList() { 
var serviceURL = 'Main/GetCustomerUserList'; 
$('#CustomerUserList').html("Loading Data..."); 
$.ajax({ 
    type: 'post', 
    dataType: 'text', 
    cache: false, 
    url: serviceURL, 
    success: function (data) { 
     $('#CustomerUserList').html(data); 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     alert('Error - ' + errorThrown); 
    } 
}); 

}

Любая помощь будет оценена.

+0

Помогите с чем? Необходимо быть более конкретным, какова ваша проблема. Также не совсем понятно, что вы пытаетесь сделать – charlietfl

+0

@charlietfl В настоящее время я передаю свой полный db методу duplicates и создаю новый список, который отсортировал дубликаты. Теперь я пытаюсь отобразить новый обрезанный список в моей таблице html, но мой метод, похоже, не передает его правильно. Я бы хотел, чтобы некоторые из них помогли устранить неисправность моего javascript и найти любые ошибки или функции масляной работы. – Matt

+1

может запрашивать db для значений 'distinct', а не для циклического преобразования всего в вашем внутреннем коде – charlietfl

ответ

0

Существует более эффективный способ обработки дубликатов, как описано здесь: https://stackoverflow.com/a/1300116/1845408

Вы можете использовать DistinctBy из MoreLINQ.

var distinctValues = _dbContext.CustomerUsers.DistinctBy(c => c.CustomerUserId); 
Смежные вопросы