隐藏实体框架中的重复用户

时间:2015-04-09 16:39:27

标签: javascript jquery html entity-framework

我有一个包含4000多个对象的数据库,其中大多数都是重复的。我想创建它们的新视图,并通过按名字和姓氏显示每个元素的1个实例来缩短列表。我已经在我的Repository中创建了一个我认为应该工作的方法,以及显示我的新列表的按钮。我认为最好的方法是使用JavaScript或JQuery,但我不知道如何解决它。

这是我的重复用户排序方法:

    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);
    }
});

}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

有一种更有效的处理重复项的方法,如下所述:https://stackoverflow.com/a/1300116/1845408

您可以使用MoreLINQ中的DistinctBy

var distinctValues = _dbContext.CustomerUsers.DistinctBy(c => c.CustomerUserId);