Necesito buscar en una tabla dblinq para que la función devuelva la lista de filas si alguno de los campos coincide con la entrada de búsqueda.¿Cómo buscar cualquier propiedad desde una tabla con linq?
Es más similar a la búsqueda de Google donde se busca con cualquier palabra clave y se muestra la lista de documentos que coinciden.
Utilicé la reflexión para esta técnica. ¿Puedes verificar si este método es correcto o hay algún método simple para lograrlo?
Tengo todas las propiedades de las filas de la tabla dblinq y las comparé si es tipo de cadena y luego compruebo el valor.
El código que he utilizado
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;
}
PD: Me estoy haciendo la producción esperada de este método, pero me gustaría saber si tengo alguna forma alternativa también.
Gracias Bala, por lo que de cualquier manera debería usar el reflejo para este derecho? – Coder323