У меня есть решение для 4.0 (я не уверен, что оно будет работать на 3.5, я не проверял).
Сначала установите свойство Lazy Loading Enabled
вашей модели сущностей на false
.Обратите внимание, что в результате вы потеряете ссылки при автоматической загрузке.
Далее попробуйте этот код:
var message = soe.Messages
.Where(m => (m.ID == id || m.ParentId == id) && m.IsActive)
.AsEnumerable()
.FirstOrDefault(e => e.Id == id);
EF разрешит ссылки родитель-потомок и не будет загружать другиедочерние ссылки, если не будет сделан явный запрос (например, Include
или Load
).Обратите внимание, что вы должны перебрать результаты Where
, используя AsEnumerable
, иначе они не будут загружаться.