请教 lambda
用 Linq 2 Sql
C# code
DatabaseDataContext db = new DatabaseDataContext();
public Table1 GetTable(int colId, string accountName, string accountPassword, string accountEmail)
{
db.Table1.Where(p=> ); // 这里该怎么写一句lambda,才能符合下面的要求?
}
1. 如果 colId 小于等于 0,则忽略这个参数
2. 如果 accountName 为 null,则忽略这个参数
3. 如果 accountPassword 为 null,则忽略这个参数
4. 如果 accountEmail 为 null,则忽略这个参数
5. 如果 colId 大于 0,则忽略其他参数。
6. 如果 accountName 不为空,则作为筛选条件。
6. 在 accountName 不为空时,accountPassword 才可以进入筛选条件。
7. 如果 accountName 为空,那么即便 accountPassword 不为空也会被忽略。
8. 如果 accountEmail 不为空,则作为筛选条件
我想了半天也只能想出一个部分
C# code
db.Table1.Where(p=> (colId<=0?p.colId>0:p.colId==colId) && (string.IsNullOrEmpty(accountEmail)?p.accountEmail!=null : p.accountEmail == accountEmail) && ......);
但后面的就不知道该咋办了。
毕竟我第一次接触 lambda,所以希望高手可以指导下,谢谢!
------解决方案--------------------http://blog.csdn.net/q107770540/article/details/5724013
其实你所描述的就是一个 查询字符串拼接而已
------解决方案--------------------linq to sql在tolist之前都没有具体的查询