我有一个简单的查询,删除表中的条目
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
时,它确实返回一行。那么为什么我的声明没有在数据库中找到该行?
答案 0 :(得分:1)
使用内置的LINQ-to-SQL日志记录检查发出的SQL(将TextWriter连接到DataContext上的Log属性)或SQL事件探查器。很可能你的DBML中存在数据类型不匹配或关键问题(即,某些内容与数据库中的实际情况不匹配,并且映射器正在对其进行处理)。我们几乎只在L2S上运行一个非常大而复杂的站点,这些问题几乎总是与破坏的DBML有关。