#c# #.net #entity-framework #entity-framework-core
Вопрос:
Я пытаюсь реализовать универсальный метод поиска, который может использоваться со всеми объектами БД.
public static object HandleSearch(object objList, string searchText)
{
Dictionary<string, object> ht = null;
List<Dictionary<string, object>> returnList = new List<Dictionary<string, object>>();
var a = objList as ICollection;
object data = null;
Type tp = null;
foreach (object obj in a)
{
ht = (Dictionary<string, object>)obj;
foreach (string key in ht.Keys)
{
data = ht[key];
tp = data.GetType();
if (tp == typeof(DateTime))
{
if (((DateTime)data).ToString("dd/MM/yyyy HH:mm:ss").Contains(searchText))
{
returnList.Add(ht);
break;
}
else if (data.ToString().ToLower().Contains(searchText.ToLower()))
{
returnList.Add(ht);
break;
}
}
}
}
return returnList;
}
Я должен назвать это так
var x = _service.GetAll(eo);
var c = GeaUtility.HandleSearch(x, "29/02");
Когда я пытаюсь, это дает мне «не удается привести из списка в список<Словарь<строка, объект><строка, объект>>.
Как я могу решить эту проблему? Есть какие-нибудь идеи?
Комментарии:
1. Просто чтобы уточнить, вы получаете список объектов (любого типа) и ищете в них любую заданную строку?
2. ДА. Я пытаюсь реализовать глобальный поиск.
3. Где возникает ошибка?