0

次のLinqtoEntitiesクエリを使用して、一意のフィールドで1回クエリを実行してから、個別の(外部キー)プロパティで一致するすべてのレコードを検索しています。

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 に答える