SELECT userid FROM userTable
WHERE userid in (select writeuserid FROM boardTable)
C# LINQ 表达式,如何使用查询?
我一直在使用EF4。userTable、boardTable 连接到 DbContext。
为什么不使用两个不同的 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
为什么不使用加入?
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
假设在这里你使用了Entity FrameWork,所以你可以使用Join
来获取结果,下面是使用lambda表达式:
var result = dbContext.Users.Join(dbContext.Boards,
user => user.UserId,
board => board.WriteUserId,
(u, b) => u.UserId);