1.EF无法根据条件动态join表,一开始就需要确定使用那些表,准备好数据集;所以把条件分了几个大类,只要条件都属于一个类别的,优先使用这个类别相关部分表的联合查询,能提高效率。如果条件涉及多个类别,就用一个left join所有表的数据集来查询;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
var qry = from p in Ent.PaInfoes where p.MOBILE != "" select new { p.CNO, p.PNAME, p.GENDER, p.BIRTHDAY, p.MARRIAGE, p.RACE, p.BLOOD, p.PURSUIT, p.MOBILE, p.MAKEDATE, p.MAKEHOSNAME, p.RESPDOCNAME, p.MAKENURNAME, p.JIGUAN, p.COMMUNI }; foreach (var item in pnlConditionList.Controls) { switch (((UCSearch)item).SearchCondition) { //姓名 case SearchCondition.scName: UCSearch usName = (UCSearch)item; if (usName.TextValue != "") qry = qry.Where(d => d.PNAME == usName.TextValue); break; from:http://lxw5214.blog.163.com/blog/static/1414733201521254112570/ |