ahmed_sa Ответов: 1

Как назначить любое количество ключей параметров функции getbyid repository pattern ?


Problem

How to assign any number of parameter keys on function Getbyid Repository pattern ?

I work on web app using repository pattern generics 

in  repository interface getbyid function as following

public T GetById(int Id)
        {
            return dbSet.Find(Id);
        }
and in interface Igenerics

T GetById(int Id)
suppose i dont know how many parameters passing so that what i do and how to call it please 

getbyid return keys for model may be keys for model 1key or 2 or 3 or 4 etc ..

so that can you help me using dynamic datatype or  params object[] keyValues
<code></code>
public T GetById(what i write here)
        {
            return dbSet.Find(Id);
        }

а в интерфейсе Igenerics

T GetById(то, что я пишу здесь)

когда вызов getbyid как его назвать

мне нужно использовать динамические и params object[] keyValues

Что я уже пробовал:

public T GetById(what i write here)
        {
            return dbSet.Find(Id);
        }

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Последний раз, когда я проверял, Entity Framework не поддерживает параметры, оцениваемые коллекцией. Это означает, что вы не можете передать несколько ключевых значений и ожидать, что EF вернет все объекты с любым из этих ключей. Вы можете запросить только один ключ за один раз. Перегрузки метода, принимающие массивы значений ключей, работают с составными ключами.

Вы можете написать пользовательский SQL для возврата нескольких объектов с помощью запроса что-то вроде:

SELECT *
FROM table
WHERE idColumn IN (values, ...)

Вы можете попросить EF выполнить запрос, и он восстановит данные в объекты для этой таблицы.

Выполнение необработанного SQL запроса в Entity Framework 6[^]
Необработанные SQL - запросы-EF6 | Microsoft Docs[^]