LINQ进行查询简单介绍

开发 后端
这里介绍用LINQ进行查询,.NET Framework 3.5中引入了一个新特性LINQ(集成语言查询),据说.NET Framework 3.5中很多特性都是为LINQ而服务的。

学习.NET Framework 3.5时,经常会遇到LINQ进行查询问题,这里将介绍LINQ进行查询问题的解决方法。

.NET Framework 3.5中引入了一个新特性LINQ(集成语言查询),据说.NET Framework 3.5中很多特性都是为LINQ而服务的,例如Lambda表达式的支持,匿名类型,等等……这篇文章会讲述一个把Linq to Object应用于测试的例子。

前一阵子需要测试一个搜索在线会员的功能,如果一个用户是在线的,那么他所能够被搜索到的信息都会作为一条记录,保存在一个表中,主要的字段有5 个,也就是根据这5个字段的信息可以查询出用户想要的在线会员。一个简单的方案就是写一个比较复杂的存储过程,然后根据5个输入来查询出不同的结果,不过 DBA说在SQL SERVER中进行逻辑运算的性能不是很好,所以开发人员写了12条存储过程,分别对应不同的组合,那么对于我做集成测试来说,我起码要有12个测试方法对应这12条存储过程。同时我还要设计一定数量的测试数据,供我查询测试,而比较要命的是,这些测试数据随着我对这个功能的理解的深入,在不断地增加,结果就是如果我写第一个测试的时候,我准备的数据是30条,OK,测试通过; 等我写到第五个测试的时候,测试数据可能有40条了,当我用这40条测试数据重新指向第一个测试的时候,FAILED!!!这让人非常郁闷。所以我想到了能不能用round trip的方法来进行测试。做一个比喻,假如说我想证明WIN7的计算器程序是正确的,那么可以把相同的计算在WIN XP的计算器中跑一遍,如果两者结果一样,那么我可以认为WIN7的计算器程序也是正确的(如果XP的计算器有错怎么办?先别较真,有风险,但很小)。

我的做法就是,准备一些数据,首先用SUT进行查询,然后用LINQ进行查询,如果两者查询结果一致,那么可以认为程序是正确的,否则就是两者之一存在问题。

首先准备一些测试数据,保存为XML文件,第一方便对测试数据进行CRUD,第二可以用XmlSerializer把这些数据转换为对象,方便用LINQ进行查询。

  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. <onlinefriends> 
  3. <friends> 
  4. <onlinefrienddata> 
  5. <friendid>1300010000friendid> 
  6. <province>北京市province> 
  7. <city>北京市city> 
  8. <age>18age> 
  9. <gender>2gender> 
  10. <hasphoto>truehasphoto> 
  11. onlinefrienddata> 
  12. <onlinefrienddata> 
  13. <friendid>1300010002friendid> 
  14. <province>北京市province> 
  15. <city>北京市city> 
  16. <age>27age> 
  17. <gender>2gender> 
  18. <hasphoto>falsehasphoto> 
  19. onlinefrienddata> 
  20. <onlinefrienddata> 
  21. <friendid>1300010004friendid> 
  22. <province>广东省province> 
  23. <city>广州市city> 
  24. <age>45age> 
  25. <gender>1gender> 
  26. <hasphoto>truehasphoto> 
  27. onlinefrienddata> 
  28. friends> 
  29. onlinefriends> 

【编辑推荐】

  1. LINQ to SQL数据表介绍
  2. LINQ查询的目的与实现手段
  3. LINQ from子句进行复合查询实现方法
  4. LINQ查询表达式功能详解
  5. LINQ基础概念总结
责任编辑:佚名 来源: 51CTO
相关推荐

2009-09-15 16:09:12

LINQ进行查询

2009-09-15 09:39:38

LINQ查询架构

2009-09-11 09:41:19

LINQ to SQL

2009-09-08 10:50:20

2009-09-09 14:20:49

LINQ To Luc

2009-09-16 10:38:43

LINQ查询

2009-09-10 16:28:17

LINQ查询

2009-09-09 09:36:25

Linq对象引用

2009-09-07 17:46:18

LINQ高级特性

2009-09-09 15:10:35

LINQ查询句法

2009-09-08 09:24:50

LINQ查询

2009-09-14 10:20:52

LINQ查询语法

2009-09-15 14:58:26

Linq查询本质

2009-09-15 15:18:40

Linq连接查询

2009-09-15 11:34:47

Linq多条件查询

2009-09-17 09:15:49

Linq表达式树

2009-09-11 09:53:16

Linq查询表达式

2009-09-17 08:47:00

Linq查询

2009-08-27 13:10:54

LINQ from子句

2009-09-15 15:09:50

Linq本质
点赞
收藏

51CTO技术栈公众号