2010-03-01 4 views
4

У меня есть функциявключают LINQ с условием

public Menu Details(int? id) 
    { 
     return _dataContext.Menu.Include("ChildMenu").FirstOrDefault(m => m.MenuId == id); 
    } 

Теперь мне нужно добавить условие в список ребенка ChildMenu что-то вроде имя_поля = ld. как мне это сделать?

+0

Я не совсем уверен, что именно вы пытаетесь сделать. Не могли бы вы уточнить вопрос? – Davy8

+0

У меня есть класс меню с такими свойствами - ключ меню, isdeleted bool, parentmenu (ссылка на parentobject Menu) и childmenu (список меню списка дочерних объектов). поэтому мне нужно получить родительскую запись со списком дочерних записей, где isdeleted = false для каждой дочерней записи – kusanagi

ответ

2
return _dataContext.Menu.Include("ChildMenu") 
    .Where(m => m.MenuId == id && m.ChildMenu.IsDeleted == false).FirstOrDefault(); 
+0

Внимательно с этим решением это неверно. При наличии LEFT OUTER JOIN с ON ChildMenu.IsDeleted == 0 мы объединяемся только для не удаленных элементов, но мы также сохраняем все пункты меню, только все свойства ChildMenu будут NULL. Решение выше, хотя и делает LEFT OUTER JOIN без каких-либо условий, но затем удаляет элементы из МЕНЮ, которые имеют Menu.ChildMenu.IsDeleted == 0. Так что это, вероятно, не то, что вы хотели! – baHI

Смежные вопросы