读书人

请问 lambda

发布时间: 2012-06-16 20:34:32 作者: rapoo

请教 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之前都没有具体的查询
探讨

那个。。。。冒昧问下

var query = db.Table1; // 在这句时,是不是已经把数据库的内容都读出来了?
后面的where只是筛选这些结果对吗

读书人网 >C#

热点推荐