您的位置:首页 > 其它

单表多条件查询,匿名类型,匿名对象,嵌套查询,Linq序列转换后调用外部方法

2012-01-05 21:29 288 查看
//Linq语句

NorthwindEntities db = new NorthwindEntities();

//多条件单表查询

var query = from q in db.Orders where q.OrderID > 10250 && q.OrderID < 10255 select q;

query = from q in db.Orders where q.OrderID < 10250 || q.OrderID > 11075 select q;

//功能等同的方法查询

query = db.Orders.Where(c => c.OrderID > 10250).Where(c => c.OrderID < 10255);

//匿名类型:选取数据的部分字段,注意括号的内容

var query1 = from q in db.Orders select new { q.OrderID, q.OrderDate };

var query2 = from q in db.Orders select new { yoyo = q.OrderID, yoyozhu = q.OrderDate };

var query3 = from q in db.Orders select new { q.OrderID, yoyozhu = q.EmployeeID == 9 ? "YYYY" : "xxx" };

//匿名对象:OrderInfo

var query4 = from q in db.Orders select new { q.OrderID, OrderInfo = new {q.OrderDate,q.CustomerID } };

//嵌套查询:查找订单里面有打折商品的信息

var query5 = from q in db.Orders

select new

{

q.OrderID,

orderProducts = from qq in q.Order_Details

where qq.Discount > 0

select qq

};

//调用外部方法:对查询之后的结果处理之后再输出.完全同意能再内部调用外部方法

//不过要报错:因此该方法无法转换为存储表达式。这个问题可以解决,但是个人觉得

//调用外部方法事实上可以不用放在内部,在需要的时候调用更合适

var query6 = from q in db.Customers

where q.CustomerID == "ALFKI"

select new { q.CustomerID, zhu = SetString(q.CompanyName) };

foreach (var tmp in query6)

Console.WriteLine(tmp.CustomerID + "\t" + SetString(tmp.zhu));

}

static string SetString(string kk)

{

return kk + "__yoyo";

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐