SELECT userid FROM userTable
WHERE userid in (select writeuserid FROM boardTable)
C#LINQ表达式,如何使用查询?
我一直在使用EF4。 userTable,boardTable连接到DbContext。
答案 0 :(得分:4)
为什么没有两个不同的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;
如果你的情况和问题一样简单,那么你会导致join in linq
答案 1 :(得分:1)
假设你在这里使用Entity FrameWork,所以你可以使用Join
来获得结果,下面是使用lambda表达式:
var result = dbContext.Users.Join(dbContext.Boards,
user => user.UserId,
board => board.WriteUserId,
(u, b) => u.UserId);
答案 2 :(得分:1)
为什么不使用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