from student in ctx.Students where student.Name == '张三' select studnt
如果这个 student.Name == '张三' 条件是在运行时决定的,就是说整个查询的条件可能为一个两个多个或一个都没,这种情况代码应该怎么写?
------解决方案--------------------------------------------------------
帮LZ顶
------解决方案--------------------------------------------------------
先不要写Where条件,之后再用Lamda表达式传条件
------解决方案--------------------------------------------------------
var q = ctx.Students;
if(string.IsNullOrEmpty(name)) {
q.Where(p => p.Name == name);
}
if(age.HasValue) {
q.Where(p => p.Age == age.Value);
}
...
------解决方案--------------------------------------------------------
o_o
------解决方案--------------------------------------------------------
看一下linq sample里DynamicQuery
这是它的运行效果
var query =
db.Customers.Where("City == @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select("New(CompanyName as Name, Phone)");