var result = (from a in db.tableA join b in db.tableB on a.id equals b.aid select new { // 返回需要的字读
a.id,
b.Key }); // 条件一 if(Name) result = result.Where(x=>x.Name == "A"); // 条件二 if(Sex) result = result.Where(x=>x.Sex == "A"); // 真正查询,并返回结果 result.ToList();
1. 我需要的字段里不包含查询条件所用的字段
2. 用 IQueryable 的话就意味着我需要写entity来对应select 的字段,实体真心字段多,而且大多数是ID 需要获取ID对应的内容。
上述两个问题怎么解决?
一、你可以先把Name字段,Sex字段先提取到result中,再在result select new {id,Key}
二、可以直接将查询条件写在后面
已经说了 result select 的字段里并不包含查询条件需要的字段呀
把 from a in db.tableA…… 写入if 内
关于字段多的,你定义一个类C里面有2个成员A 和B
select的时候new c{A=a,B=b}就行了.
linq to sql只能这样了,如果是linq to entites的话用导航属性
的
仍