中易网

LinQ序列不包含任何元素

答案:3  悬赏:0  
解决时间 2021-01-17 00:42
  • 提问者网友:人傍凄凉立暮秋
  • 2021-01-16 03:05
LinQ序列不包含任何元素
最佳答案
  • 二级知识专家网友:末日狂欢
  • 2021-01-16 04:04
首先给你解释下,Single()方法里lambda表达式表示的是一个逻辑判断,此处的意思就是,查找Books表满足id=传入id的单条记录.你这里传入id是0,那么数据库存在ID为0的Book么??

再给你解释下几个实例化方法的区别
First() 返回LIst第一条记录,如果List为null或者count=0,抛异常
FirstOrDefault()和First一样,不过不抛异常
Single()返回唯一一条记录,如果List的Count!=1抛异常
SingleOrDefault()不抛异常

用以上的抛异常方法,都需要做好try...catch追问我数据库是没ID为0的数据,我之后把Single()修改为SingleOrDefault(),然后修改为了查询的方法,就是原来我是通过ID来查的,现在是直接查询所有的。
全部回答
  • 1楼网友:duile
  • 2021-01-16 05:25
调试,看dataCC.Books里面有没有数据追问数据库是有数据的,但id返回的是0,null追答不是数据库有没有数据,是这个对象有没有数据?
  • 2楼网友:忘川信使
  • 2021-01-16 05:11
dataCC.Books返回为null(也就是一条数据都没有),那么再调用Single方法就肯定出错了追问我的数据库里面是有数据的,在设计模式时是看得到数据的,为何运行调试时,id的返回值是0,就是null呢?还有就是,这时应该调用的是哪个,望能指教。追答需要检查下 DataClassesDataContext 为何为空追问我知道了,因为我Books表里面没有为id0的数据。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息