Linq-to-sql - запрос не фильтруется - PullRequest
2 голосов
/ 29 июля 2010

Я действительно новичок в Linq и использую Linq-to-Sql следующим образом. Однако в следующем примере мое предложение where никогда не выполняется, и результирующий запрос пытается извлечь все записи из моей таблицы, игнорируя даже метод take.

Может кто-нибудь указать, что я делаю неправильно

        var baseQry = db.Table;
        baseQry.Where(a => a.tab_id == theId);
        baseQry.Select(o => new
        {
            o.name,
            o.display_name,
            o.type,
            o.info,                
            time_stamp = (Convert.ToDateTime(o.timestamp).ToLongDateString())
        }).Take(10);

       baseQry.ToList();

1 Ответ

3 голосов
/ 29 июля 2010

Ваша вторая строка ...

baseQry.Where(a => a.tab_id == theId);

... по сути не работает, потому что результирующий запрос не переносится в ваше предложение .Select.

Вам нужно изменить это на:

var baseQry = db.Table;

var results = baseQry
    .Where(a => a.tab_id == theId)
    .Select(o => new
        {
            o.name,
            o.display_name,
            o.type,
            o.info,                
            time_stamp = (Convert.ToDateTime(o.timestamp).ToLongDateString())
        })
    .Take(10)
    .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...