0

我正在使用以下 Linq to Entities Query,在唯一字段上查询一次,然后在单独的(外键)属性上查找所有匹配的记录:

public IEnumerable<User> getUsersInSameCentreAs(String userName)
{
    int? studyCentreId = (from u in _db.Users
                         where u.UserName == userName
                         select u.StudyCentreID).FirstOrDefault();
    return (from u in _db.Users
            where u.StudyCentreID == studyCentreId
            select u).ToList();
    }

必须有一个干净/单一的查询,它只会查询一次数据库以获得相同的结果,但我对实体的 linq 知识让我失望 - 任何人都可以看到更好的解决方案。谢谢你。

4

1 回答 1

1

子查询将解决这个问题:

return (from u in _db.Users
        where u.StudyCentreID == (from u2 in _db.Users
                     where u2.UserName == userName
                     select u2.StudyCentreID).FirstOrDefault();
        select u).ToList();
于 2012-08-06T18:14:45.733 回答