iqueryable выберите / где не работает - PullRequest
0 голосов
/ 18 июня 2010

У меня есть две таблицы Боксер и Проспект. Боксеры имеют общие вещи, такие как имя и и т.д. и т.д. и BoxerId В то время как Prospect содержит только одно значение (на данный момент), которое является идентификатором boxerId. Если боксер является потенциальным (восходящий и предстоящий боксер), там будет идентификатор в таблице потенциальных клиентов.

Это отлично работает, но теперь я хочу выбрать всех боксеров, которые являются перспективными

    public static IQueryable<Boxer> IsProspect(this IQueryable<Boxer> query)
    {
        //this does not filter down to only prospects!!!
        return query.Where(x => x.Prospect != null);
    }

Это функция, которую я вызываю с помощью:

var repository = GetRepository<Boxer>();
var boxers = repository.Query().IsProspect();

Я бы надеялся, что это отфильтровывает мою коллекцию всех боксеров, вплоть до просто перспективных!

Как ни странно, он не фильтрует его, но если я наведу курсор мыши на объект своего боксера и посмотрю на каждого боксера во время отладки, я смогу увидеть «IsProspect» верно или неверно Пример отладки IsProspect http://img534.imageshack.us/img534/4361/isprospect.png

Ответы [ 3 ]

1 голос
/ 18 июня 2010

Если вам нужны только те объекты, для которых IsProspect имеет значение true, используйте это в качестве предиката:

public static IQueryable<Boxer> IsProspect(this IQueryable<Boxer> query)
{
    return query.Where(x => x.IsProspect);
}
0 голосов
/ 18 июня 2010

перегружает datacontext и напрямую вызывает функцию из вашего datacontext объекта

public partial class myDataContext
{
       public IQueryable<Boxer> IsProspect()
       {
             return from tBoxer in myDataContext.tBoxer 
                    where tBoxer.IsProspect == true             
                    select tBoxer;
       }
}

и вы бы назвали это как обычный вызов функции, например var db = new myDataConext(); var prospects = db.IsProspect();

0 голосов
/ 18 июня 2010

Похоже, вы должны использовать наследование таблицы на подкласс .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...