У меня есть модель в EF4. В этой модели есть две иерархические сущности, которые имеют отношение 0..1-> много к себе (у них есть поле ParentId), поэтому у каждой есть свойство Parent (одного типа) и Children (коллекция одного типа). их определения почти одинаковы.
один из них работает нормально, но в другом свойство Children всегда содержит первое дочернее событие, если оно имеет несколько дочерних элементов.
Обновление:
Я провел тест с Sql Server Profiler:
var p = from item in context.Entity1.Include("Children")
where item.Id == 15
select item;
var q = from unit in context.Entity2.Include("Children")
where unit.Id == 239
select unit;
оба эти оператора Linq генерируют sql-запросы, которые возвращают 3 записи, поскольку Entity1 с идентификатором 15 и Entity2 с идентификатором 239 имеют 3 дочерних элементов. q.First (). Count возвращает 1, но p.First (). Count возвращает 3.