このSQLをLINQに変換するにはどうすればよいですか?
Select Top 1 iD, Grad from tbl1
WHERE tbl1.ID not in
(Select GradId from tbl2 WHERE ID = 99469)
最も簡単な方法は次のようになります。
var grads =
(from r in tbl2
where r.ID == 99469
select r.GradID);
var results =
(from r in tbl1
where !grads.Contains(r.ID)
select new { r.ID, r.Grad })
.FirstOrDefault();
またはもう少し簡潔にするために:
var grads = ...
var results = tbl1
.Select(r => new { r.ID, r.Grad })
.FirstOrDefault(r => !grads.Contains(r.ID));
次の行に何か:
var query =
(from c in db.tbl1
where !(from d in db.tbl2
select d.id)
.Contains(c.id)
select c).Take(1)