Entity Framework - общий запрос - PullRequest
       3

Entity Framework - общий запрос

0 голосов
/ 01 апреля 2011

ссылка на предыдущий пост ( Entity Wrapper - Custom ) У меня все еще есть некоторые трудности с общим запросом для получения общего поля.

У меня простой интерфейс только с одним полем.Все мои объекты наследуются от моего интерфейса.Затем я набрал класс, инкапсулирующий мой objectContext.Что ж, теперь мне нужно выполнить запрос linq, чтобы получить мой объект IQuerable.Следующий фрагмент кода приводит к ошибке во время сборки:

public IQueryable<T> GetQuery<T>() where T : IEntity 
{
    var query =
        GetObjectSetSomehow; //problem: I don't know the objectSet type here!!   
    return query.Where(p => p.field == "..."); 
}

Но особенно моя проблема связана с невозможностью сделать приведение из IQuerable, где T: MyInterface to ObjectSet

Любое предложение будет оценено.

1 Ответ

3 голосов
/ 01 апреля 2011

Может быть Метод ObjectContext.CreateObjectSet может помочь вам. Как говорится в MSDN, метод

Создает новый ObjectSet экземпляр, который используется для запроса, добавить, изменить и удалить объекты указанный тип объекта.

public static IQueryable<T> Create<T>(ObjectContext context) where T : class, IEntity
    {
        var query = context.CreateObjectSet<T>().AsQueryable();
        return query.Where(x => true);
    }
...