Как передать сущность или DbSet в качестве параметра?

#generics #linq-to-entities

#дженерики #linq-to-entities

Вопрос:

Я хотел бы передать dbset в качестве общего параметра, чтобы создать общий метод для большего количества запросов. Вопрос в том, как написать универсальный метод, который принимает DbSet<MyTable> в качестве универсального параметра? Метод содержит запрос linq to entities и возвращает результат. MyTable может быть любой таблицей модели данных.

Я нашел похожие вопросы, но довольно сложные. Я полагаю, для простейшего примера должно быть какое-то простое решение.

         private IQueryable<string> GetDgData(???)
        {
            var res = dbset.Select(x => x.MyProperty);                 
            return res;
        }
 

Комментарии:

1. В чем ваш вопрос?

2. @NetMage Я добавил объяснение

3. Для доступа MyProperty укажите тип dbset (разве это не должен быть параметр?) должен быть типа, который имеет MyProperty . Если у вас нет базового класса или интерфейса, общего для всех ваших типов таблиц, вам придется использовать отражение вместо generics. Или, возможно, скомпилированные Expression деревья.

4. @NetMage, если я расширяю все таблицы с помощью интерфейса. Как должен выглядеть метод?