使用单个查询查询实体框架对象和子对象

时间:2010-10-06 19:55:55

标签: asp.net-mvc-2 linq-to-entities entity-framework-4

我有两个具有一对多关系的Entity Framework对象:

小部件(父级)和widgetNail(子级)

Widget有一个文本列:Title WidgetNail有一个文本列:描述

我想构建一个查询,该查询将返回符合以下两个条件之一的小部件列表:

  1. 在窗口小部件标题中找到文本字符串,或
  2. 在任何WidgetNail描述中都可以找到相同的文本字符串。
  3. 到目前为止,我有这个,这不起作用......

    from widget in entities.Widgets
    from widgetNail in entities.WidgetNails
    where widget.Title.Contains(searchText)
    || widgetNail.Description.Contains(searchText)
    select widget).ToList();
    

1 个答案:

答案 0 :(得分:2)

关于

  

2.在任何WidgetNail描述中都可以找到相同的文本字符串。

你的意思是当前Widget的孩子?

(from widget in entities.Widgets
where widget.Title.Contains(searchText) || widget.WidgetNails.Any(wn => wn.Description.Contains(searchText))
select widget).ToList();

或流利的语法:

entities.Widgets.
         Where(w => w.Title.Contains(searchText) ||
                    w.WidgetNails.Any(wn => wn.Description.Contains(searchText))).
         ToList();