Реализация универсального поиска в EF Core

#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. Где возникает ошибка?