Linq -如何做两个选择查询
本文关键字:选择 查询 何做两 Linq | 更新日期: 2023-09-27 18:06:53
SELECT userid FROM userTable
WHERE userid in (select writeuserid FROM boardTable)
c# LINQ表达式,如何使用查询?
我一直使用EF4。
为什么不使用两个不同的LINQ查询,这样内部查询就不会在外部查询的每次迭代中执行。
var query1 = (from t in dbContext.boardTable
select t.writeuserid).ToArray();
var query2 = from r in dbContext.userTable
where query1.Contains(r.userid)
select r.userid;
如果你的情况和问题中一样简单,那么你在linq
假设在这里您使用实体框架,因此您可以使用Join
来获得结果,下面是使用lambda表达式:
var result = dbContext.Users.Join(dbContext.Boards,
user => user.UserId,
board => board.WriteUserId,
(u, b) => u.UserId);
为什么不使用join?
var result = (from u in dbcontext.userTable
join u1 in dbcontext.boardTable on u.userid equals u1.writeuserid
select u.userid).FirstOrDefault();
if (result != null)
// do anything else
else
// user not exists