В Entity Framework, entity.children возвращает только первый дочерний элемент - PullRequest
0 голосов
/ 12 июня 2011

У меня есть модель в 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.

...