Я получил очень простую схему базы данных и создал из нее dbml.Две таблицы связаны в один-ко-многим.(A) 1 - * (B) ... следовательно, каждый A получает EntitySet с именем "BSet".
Если я сделаю:
foreach (var a in db.A)
{
Console.WriteLine(a.Name);
foreach (var b in a.BSet)
{
Console.WriteLine(b.Number);
}
}
, я обнаружу, что он печатает то же самоенабор B для каждого A. Если я отлаживаю L2S Log, я вижу, что он создает правильный SQL каждый раз, когда вызывает BSet.Несмотря на это, он печатает один и тот же набор B для каждого A.
Если я напишу оператор LINQ Select, то получу правильный результат.
Что сломано в foreach?Я обычно очень хорошо разбираюсь в тонкостях LINQ, но это меня смущает!