好吧,我认为这很容易。我在tblWorkoutstblPersonalRecords之间有一对多的关系。我现在已经从tblWorkouts删除了一些行,而没有从tblPersonalRecords删除它们(我应该设置一个外键和一个级联删除...)。

我试图找出一个查询来找到tblPersonalRecords中的孤立行。这是我尝试过的:

from s in db.tblPersonalRecords
where s.tblWorkoutRecord.WorkoutSummaryID == null
select s


那不行如何编写LINQ查询以查找我的孤立行?我正在使用Linq2Sql,如果有所作为。

最佳答案

也许我误解了这个问题,但是当您从tblWorkouts中删除行之后根本没有更新行时,为什么还要检查tblPersonalRecords中的值是否为null?

我希望将来的外键值现在指向tblWorkouts中不再存在的行,而不是null。

如果真是这样,那么也许这会有所帮助:

var ids = from w in db.tblWorkouts
          select w.id;

var rows = from s in db.tblPersonalRecords
           where !ids.Contains(s.tblWorkoutRecord.WorkoutSummaryID)
           select s;


无论如何,如果您使用原始语句,编译器会抱怨什么?您遇到什么类型的错误?

10-08 12:49