Здесь у меня есть простой запрос 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, я вижу, что он возвращает результаты. Это сводит меня с ума, и я не знаю, что не так. Пожалуйста, взгляните и скажите мне, что не так.
Спасибо.