Linq-to-Entities возвращает результаты, но не повторяется в ForEach - PullRequest
0 голосов
/ 01 февраля 2012

Здесь у меня есть простой запрос Linq-to-Entities:

static IEnumerable<T> SequenceByExample<T>(T t) { return null; } // Learnt this from SOF
var clientsMonthly = SequenceByExample(new { ClientCode = "", InvoicingActivityStartDay = "", InvoicingActivityEndDay = "" });

if (DateTime.TryParse(Date1Param, out date1))    
{
 tmp_day1 = date1.Day.ToString();
 clientsMonthly = from cd in mydbcontext.ClientSchedules
                                where cd.ClientSchedule == "Monthly"
                                && cd.InvoicingActivityStartDay == tmp_day1
                                select new
                                {
                                    cd.CLIENT.ClientCode,
                                    cd.InvoicingActivityStartDay,
                                    cd.InvoicingActivityEndDay
                                };

}
else
{
clientsMonthly = from cd in mydbcontext.ClientSchedules
                                where cd.ClientSchedule == "Monthly"
                                && cd.InvoicingActivityStartDay == SqlFunctions.StringConvert((double)DateTime.Now.Day)
                                select new
                                {
                                    cd.CLIENT.ClientCode,
                                    cd.InvoicingActivityStartDay,
                                    cd.InvoicingActivityEndDay
                                };
}

 foreach (var item in clientsMonthly)
 {
   // this part is never executed 
 }

If выполняется, когда в метод передается дата, в противном случае он переходит к остальной части.

При отладке поток попадает в другую часть, он выполняет запрос Linq; однако foreach, следующий за if..else, не повторяется. Он пропускает цикл foreach, как будто данные не возвращаются.

Когда я попробовал запрос Linq в LinqPad, я вижу, что он возвращает результаты. Это сводит меня с ума, и я не знаю, что не так. Пожалуйста, взгляните и скажите мне, что не так.

Спасибо.

...