Muszę przeszukać tabelę dblinq, aby funkcja zwróciła listę wierszy, jeśli którekolwiek z pól pasuje do danych wejściowych wyszukiwania.Jak przeszukać dowolną nieruchomość z tabeli z linq?
Jest to bardziej podobne do wyszukiwania google, w którym wyszukiwane są dowolne słowa kluczowe i wyświetlana jest lista pasujących dokumentów.
Użyłem refleksji dla tej techniki. Czy możesz sprawdzić, czy ta metoda jest poprawna, czy jest jakaś prosta metoda, aby to osiągnąć?
Mam wszystkie właściwości wierszy tabeli dblinq i porównałem, jeśli jest to typ łańcucha, a następnie sprawdziłem wartość.
Kod Użyłem
public static List<Contacts> SearchContact(string searchText)
{
List<Contacts> list = new List<Contacts>();
try
{
var rows= from p in context.tblContacts select p;
foreach (var contact in rows)
{
Type type = contact.GetType();
Type typesearch = searchText.GetType();
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo pro in properties)
{
if (pro.PropertyType == typesearch)
{
var value = pro.GetValue(contact, null);
string val = value as string;
if (val != null && val == searchText)
{
list.Add(contact);
break;
}
}
}
}
}
catch (Exception ex)
{
}
return list;
}
PS: jestem coraz oczekiwane wyjście z tej metody, ale chciałbym wiedzieć, czy mam jakiś alternatywny sposób zbyt.
Dzięki Bala, tak czy inaczej powinienem użyć refleksji na ten temat? – Coder323