UPDATE @ 6/8/2011年 你可以试试这个让你在表1
var result = from t1 in Table1s
where t1.key == t2.key && t1.SearchField1 == param1
select new Table1s //creating new Table1s Object with Filtered Table2s values
{
key = t1.key,
SearchField1 = t1.SearchField1
//set all other Table1s propeties from t1
...
Table2s = t1.Table2s.Where(x=> x.SearchField2 == param2 && x.SearchField3 == param3)
};
-----------------------------------------------------------------
得到过滤Table2s由于要检查“任何”,您是刚开始表1实体,符合你的条件。 Table1s.Table2s为您提供所有相关条目。你需要在你需要为表1符合搜索条件获取Table2s再次过滤它
dc.Table1s.SingleOrDefault(t1 => t1.SearchField1 == param1
&& t1.Table2s.Any(t2 => t2.SearchField2 == param2
&& t2.SearchField3 == param3));
,
var table2s = table1.Table2s.Where(t2 => t2.SearchField2 == param2 && t2.SearchField3 == param3);
,如果需要直接Table2s,你可以这样做:
var result = from t1 in Table1s
from t2 in Table2s
where t1.key == t2.key && t1.SearchField1 == param1
&& t2.SearchField2 == param2
&& t2.SearchField3 == param3
select t2;
谢谢你回答。但我确实需要1个结果,它是Table1类。然后,当我去Table1.Table2s我应该看到过滤的数据不是全部...... :( – EVR 2011-06-08 16:11:51
你可以尝试新的查询我更新了答案? – Akhil 2011-06-08 18:24:18
非常感谢你的答案。你写的是我最不喜欢它,因为我不想设置表1的所有属性。你是否理解我的痴迷?:) – EVR 2011-06-08 20:03:35