У меня есть поле в базе данных с дубликатами. Я хочу использовать его в выпадающем списке , и это должно возвращать отдельные данные.Возвращение отдельных данных для поля списка с selectlistItem
Вот метод, который я создал для этого.
public IEnumerable<SelectListItem> GetBranches(string username)
{
using (var objData = new BranchEntities())
{
IEnumerable<SelectListItem> objdataresult = objData.ABC_USER.Select(c => new SelectListItem
{
Value = c.BRANCH_CODE.ToString(),
Text = c.BRANCH_CODE
}).Distinct(new Reuseablecomp.SelectListItemComparer());
return objdataresult;
}
}
Это класс, который я использую.
public static class Reuseablecomp
{
public class SelectListItemComparer : IEqualityComparer<SelectListItem>
{
public bool Equals(SelectListItem x, SelectListItem y)
{
return x.Text == y.Text && x.Value == y.Value;
}
public int GetHashCode(SelectListItem item)
{
int hashText = item.Text == null ? 0 : item.Text.GetHashCode();
int hashValue = item.Value == null ? 0 : item.Value.GetHashCode();
return hashText^hashValue;
}
}
}
Ничего не возвращается. Я получил ошибку ниже. Когда я пробовал базовый запрос без четкого, все работало нормально.
{"The operation cannot be completed because the DbContext has been disposed."}
System.Exception {System.InvalidOperationException}
Внутреннее исключение = нуль
Вопрос: Как я могу вернуть различные данные для моего выпадающего списка?
Спасибо. Мне нужно сравнить имя пользователя, например, где username == "ndjgkd". Где я могу включить это в свой код? – user2320476
Не понимаю. «like» сильно отличается от «equals» (==). Что он? И, сравните, как? Что вы хотите сделать? –
извините, я имею в виду равных. это была опечатка – user2320476