好吧,我认为这很容易。我在tblWorkouts
和tblPersonalRecords
之间有一对多的关系。我现在已经从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;
无论如何,如果您使用原始语句,编译器会抱怨什么?您遇到什么类型的错误?