Entity Framework 4 - Включить собственную таблицу - PullRequest
4 голосов
/ 23 ноября 2011

У меня есть собственная таблица:

UnitID    UnitParentID   Name

Код для получения 1 уровня:

return contexto.unit
             .Include("unit1")

Код для получения 2 уровней:

return contexto.unit
             .Include("unit1.unit1")

Код для получения 3 уровней:

return contexto.unit
             .Include("unit1.unit1.unit1")

Как мне сделать это для многих уровней?

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

У меня была эта проблема в эти дни, и я решил ее следующим образом.

Сначала нужно загрузить все энты, например:

List<unit> myUnits = (from o in ctx.unit
                     .Expand("units")
                      select o).ToList();

После этого вам нужно выбрать следующие единицы:

var selectedUnits = myUnits.Where(u => u.Property == x).ToList();

Это прекрасно работает для меня! Надеюсь, я смогу вам помочь!

С наилучшими пожеланиями, Джулиан

1 голос
/ 23 ноября 2011

Краткий ответ: Вы этого не сделаете.

Более длинный ответ: Вы добавляете дополнительный столбец к юниту, чтобы идентифицировать принадлежность юнита вместе.Затем вы делаете что-то вроде:

var tempResult = myDataContext.unit.Where(x => x.id == id);
return tempResult.FirstOrDefault(); //or some other logik to return the correct 'first' unit.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...