Linq之序列化不包含任何元素问题怎么解决?
来源:互联网 发布:博威软件 编辑:程序博客网 时间:2024/04/29 13:01
今天在开发接口的时候,写了一个查询语句?语句是这样的:
<span style="font-family:Microsoft YaHei;font-size:14px;"><strong>public BasicTeacherEntities QueryOrganizationIdByTeacherId(Guid teacherID) { BasicTeacherEntities enOrgnation = this.CurrentDal.LoadItems(o => o.TeacherID == teacherID && o.IsEnabled == 1).First(); return enOrgnation; }</strong></span>
当我们用单元测试测试的时候出现了下面的错误:序列化不包含任何元素?这是怎么回事呢?百思不得之后,我上网查找,找出了答案。原来这是linq用法中抛出的异常。
原因其实是很简单的,使用First代表一定能找到,找不到就抛出异常,但这不是一种错误,我们可以使用try……catch……进行异常的捕获即可,也就是当获取到的集合为空的时候,进行判断进行输出即可,此外还有一个就是FirstOrDefault:不同于First,取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值,如果返回的是可以为null的对象,则返回默认值为null,对于不能为null的对象,如int,默认值为0。
其实如果是真实的场景的情况下,我的数据肯定是有返回值的,因为使用的是单元测试,模拟的时候使用的是一个随机的数据,导致了返回的集合为空,其实单元测试为空的时候不代表我的方法是错误的,但是出现这样的情况的时候最好使用try……catch……进行异常的相关处理。
0 0
- Linq之序列化不包含任何元素问题怎么解决?
- LINQ TO SQL“序列中不包含任何元素“ 异常
- 解决IListSource 不包含任何数据源
- 本文不解决任何问题
- Linq select 不包含
- IListSource 不包含任何数据源。
- IListSource 不包含任何数据源
- 解决IDEA任何改动都不自动编译的问题
- 33、C#:linq查本集合中不包含于另一个集合的元素
- fragment问题,不知道怎么解决
- 解决linq引用问题
- flash 由于此SWF不包含ActionScript问题的解决
- 解决VC不包含stdint.h头文件问题
- 解决 LineTo 函数不包含直线终点的问题
- 解决VC不包含stdint.h头文件问题
- 解决 那些对任何事情都不感兴趣人问题 的方法
- 解决URL中包含以及不包含https、www时引起的JS跨域问题
- 浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题
- POI实战-java开发excel详解之附录
- C++ 结构体字节对齐
- 排序算法:堆排序
- 双内置SD卡的实现
- 找不到curl/curl.h,libcurl库的安装。
- Linq之序列化不包含任何元素问题怎么解决?
- HDU 2157 How many ways??(矩阵快速幂)
- JS输入手机号码加空格
- SQLServer 可变字符怎么设置长度?(如varchar)
- 在windows下编译mongodb c driver
- Java中判断字符串是否为数字的五种方法
- 初识AWK
- webapp开发框架推荐以及优缺点分析【webAPP干货】
- android 开机默认进入指定Launcher