单表多条件查询,匿名类型,匿名对象,嵌套查询,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";
}
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";
}
相关文章推荐
- 如何将LINQ查询到的结果由匿名类型var转换成DataTable对象
- Linq排序、分组、模糊查询、调用外部方法、直接执行SQL语句、事务、修改数据
- Linq集合查询出现无法将类型为“System.Int32”的对象强制转换为类型“System.String”异常
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- EF-Linq 将实体对象转换为搜索条件以进行通用动态查询
- 主动从spring获取对象的方法,并且在调用该方法的时候不用强制转换类型
- 微软免费图书《Introducing Microsoft LINQ》翻译Chapter2.1:C# 3.0 特性(对象初始化表达式\匿名类型\查询表达式)
- LINQ 返回创建匿名类型,返回时创建对象,where,orderby
- hibernate中查询出来的字段并不能自动转换为bean对象的解决方法
- PHP将对象转换成数组的方法(兼容多维数组类型)
- Linq查询与方法调用
- PHP将对象转换成数组的方法(兼容多维数组类型)
- 出现无法将System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.DropDownList的解决方法
- 如何将linq查询的结果 转换为DataTable,最简单的实现方法
- 解析PHP将对象转换成数组的方法(兼容多维数组类型)
- 建议26:使用匿名类型存储LINQ查询结果
- c#语法糖代码——自动属性, 匿名类型,对象与集合初始化器,扩展方法
- C#调用VC DLL接口函数参数类型转换方法介绍
- table类型(字典)两种方法调用里面的对象
- 无法将类型为“IList”的对象强制转换为类型“System.Data.DataRowView” 。的解决方法