//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";
}