我认为您的SQL的直接翻译看起来像这样:
var q = from ds in table1 where ds.SubmissionTypeId == 1 || ds.SubmissionTypeId == 2 from di in table2 from dr in table2 where (ds.SubmissionTypeId == 2 && ds.SubmissionId == di.Id)|| (ds.SubmissionTypeId == 1 && ds.SubmissionId == dr.Id) select ds;
但是,这似乎不太可能是您想要的。如果我推测您的预期逻辑是什么,我认为您想要更多类似这样的东西:
var q = from ds in table1 where (ds.SubmissionTypeId == 2 && table2.Any(di => ds.SubmissionId == di.Id))|| (ds.SubmissionTypeId == 1 && table3.Any(dr => ds.SubmissionId == dr.Id)) select ds;



