在linq到sql结果中出现意外的空序列

本文关键字:意外 linq sql 结果 | 更新日期: 2023-09-27 17:49:39

我有一个简单的查询,从表中删除一个条目

        CB_User_Schedule deleted = (from x in db.CB_User_Schedules
                                    where x.ScheduleID == CurrentScheduleID
                                    select x).Single();
        db.CB_User_Schedules.DeleteOnSubmit(deleted);
        db.SubmitChanges();

但是,第一个语句返回Sequence contains no elements。我可以看到,当它执行CurrentScheduleID的值实际上是一个数字,当我直接执行select * from CB_UserSchedules where ScheduleID = 3时,它确实返回一行。为什么我的语句没有在数据库中找到那一行呢?

在linq到sql结果中出现意外的空序列

使用内置的LINQ-to-SQL日志检查发出的SQL(将TextWriter连接到DataContext的Log属性)或SQL分析器。更有可能的是,您在DBML中遇到了数据类型不匹配或关键问题(即,某些东西与DB中的现实不匹配,映射器正在对其进行处理)。我们在L2S上运行一个非常大而复杂的站点,这些问题几乎总是与损坏的DBML有关。