2013-12-03 2 views
3

Когда я выполнить этот запросLINQ запрос: пусть с включают заявление

var req = (from A in _context.STUDENT.Include("RESULT") 
        select A).ToList(); 

У меня есть ожидаемый результат: для каждого студента у меня есть ряд результатов

, но когда я добавить позволяют заявление как показано ниже, для каждого учащегося у меня есть 0 РЕЗУЛЬТАТ

var req = (from A in _context.STUDENT.Include("RESULT") 
        let b = 1 
        select A).ToList(); 

Я делаю что-то неправильно или это известная проблема или что-то в этом роде?

+0

Ну, в теории 'let' является не-оп, а вы никогда не используете 'b' для чего-либо. (Обратите внимание, что первый запрос также выполняет выбор идентификатора, который не делает ничего результативного.) Я предполагаю, что ваше использование этого путает провайдера запросов каким-то образом. Что вы на самом деле пытаетесь сделать здесь? – Servy

+0

Мой реальный запрос сложнее. и я использую переменную внутри оператора let в предложении where. Но для упрощения я использовал этот макетный запрос в качестве примера. – ihebiheb

+0

Разве вы не думаете, что предложение where является важной частью информации для добавления? Вполне вероятно, что предложение where является причиной возврата 0 результатов, а не просто включение оператора let в соответствии с вашим примером. – Ocelot20

ответ

0

A let Оператор, который не используется, не должен влиять на ваш запрос.

Чтобы быть уверенным, включите вход в систему и посмотреть на себя в консоли вывода, что сгенерированный TSQL одинакова для обоих запросов:

myContext.Log = Console.Out;